1、避免使用包装类构造函数

按照SUN公司的说明,使用自动装箱或静态工厂方法比使用new一个对象快3到4倍,该规则可以用在valueOf或其它静态工厂的调用中(如:Short、Integer, Long、Double, Byte 、Boolean等)。

推荐用valueOf()

2、面向接口编程时,推荐使用接口的声明方式

推荐使用接口声明方式

3、单个方法代码行数尽量保持在80-100行之内

4、数据库及磁盘IO等操作,必须在try-catch-finally块的finally中执行close()方法

如有多个对象需要关闭,则须分别对每个对象的close()方法进行try-catch,以防止出现一个对象关闭失败而导致其他对象都未关闭的情况出现

5、不要在循环体内进行数据库的“连接-关闭”操作

如有大批量的数据需要修改,建议使用PreparedStatement的Batch功能(一次性发送多个操作给数据库)

6、大量(如超过五次以上的“+=”运算)的字符串操作应使用StringBuilder或StringBuffer,尽量避免使用String

7、不要在循环条件中使用表达式

循环条件中避免使用表达式

8、应尽可能的以指明容量大小的方式对ArrayList进行实例化

  • public ArrayList();

    默认的构造器,JAVA以10个元素的大小初始化

  • public ArrayList(int);

    用指定的容量大小大小初始化

不指明容量大小时,如集合容量不够,则JAVA会以1.5倍的容量递增扩充,而且每次扩充,系统会重新拷贝一遍已经加入到ArrayList的数据,从而导致额外的内存开销。

9、集合中的数据如果不使用了应该及时释放

由于集合保存了对象的引用,虚拟机的垃圾收集器就不会回收

10、不要在循环体内声明变量

尽量避免在循环体内声明变量,因为每一个引用占4个字节。这样可以极大的减少新对象的创建数量,从而很大限度的减小内存开销。

不要在循环体内声明变量

11、非正常运行产生的异常被捕获后,必须对异常进行处理

在非finally块代码中catch的异常应该重新抛出经过封装的异常,在finally中再次catch的异常不应该再次抛出,应该写日志。无论是抛出异常还是记录日志,都要传递异常对象。日志应记录详细的描述信息,避免调用异常对象的getMessage()方法,直接将该异常对象作为参数传递。

12、尽量定位异常类型,不要一律catch(Exception ex)

当需要在某些出口捕获所有可能出现的运行时异常或Error时,可以catch Exception 或Throwable。

13、尽量避免一个方法中一个大的try块,catch一个Exception的代码方式,如果有必要可以使用多个try-catch块分别处理

14、不要将赋值运算符用在容易与相等关系运算符混淆的地方,如:

可读性很重要

类似的道理,我们可将“if (a == b && c == d)”改为可读性更强的“if ((a == b) && (c == d)) ”,可将“x >= 0 ? x : -x;"改为”(x >= 0) ? x : -x;“

Java基础学习总结(93)——Java编码规范之代码性能及惯例的更多相关文章

  1. java基础学习03(java基础程序设计)

    java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...

  2. java基础学习总结一(java语言发展历史、jdk的下载安装以及配置环境变量)

    最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有“01”构成,最早 ...

  3. Java基础学习笔记一 Java介绍

    java语言概述 Java是sun公司开发的一门编程语言,目前被Oracle公司收购,编程语言就是用来编写软件的. Java的应用 开发QQ.迅雷程序(桌面应用软件) 淘宝.京东(互联网应用软件) 安 ...

  4. Java基础学习总结(50)——Java事务处理总结

    一.什么是Java事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性(isol ...

  5. JAVA基础学习——1.0 Java概述

    Java语言 SUN公司  1995年推出的高级编程语言 ■  主要应用方向 Web开发和Android开发 ■  主要特点 平台无关性:能运行于不同的平台上    安全性:去掉了指针操作,内存由操作 ...

  6. Java基础学习笔记十 Java基础语法之final、static、匿名对象、内部类

    final关键字 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后,就可以对 ...

  7. java基础学习总结——哈希编码

    一.哈希编码

  8. Java基础学习笔记八 Java基础语法之接口和多态

    接口 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”.接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的定义 ...

  9. Java基础学习笔记六 Java基础语法之类和ArrayList

    引用数据类型 引用数据类型分类,提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类.我们可以把类的类型为两种: 第一种,Java为我们提供好的类,如Scanner ...

随机推荐

  1. 题解报告:NYOJ #737 石子合并(一)(区间dp)

    描述 有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆.求出总的代价最小值 ...

  2. (022)[工具软件]图片浏览 JPEGView

    JPEGView是一款小巧绿色快速的图像浏览工具,并且支持全屏或窗口模式.主页地址: https://sourceforge.net/projects/jpegview/JPEGView软件小巧,但功 ...

  3. Java 学习列表

    这是从450家企业的招聘信息中统计而来,相对来说还是比较真实的,虽然有些公司的招聘要求万年不变,但还是可以大致反应企业的招聘要求的.

  4. LN : leetcode 494 Target Sum

    lc 494 Target Sum 494 Target Sum You are given a list of non-negative integers, a1, a2, ..., an, and ...

  5. 从Java synchronized和volatile说起

    请参看https://www.cnblogs.com/chengxiao/p/6528109.html这个链接,说的特别好

  6. 手写MVVM框架 之vue双向数据绑定原理剖析

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. easybcd 支持 windows 10 和 ubuntu 14.04 双系统启动

    家里计算机系统 windows 10 全新安装. 原本是双系统的,还有一个ubuntu. windows 10 安装以后,恢复ubuntu就是问题了. (事后经验:请不要立刻安装bcd修改工具) 最初 ...

  8. Two-Phase Commit (2PC)

    两阶段提交模式像极了比赛发令:“预备,开始!”

  9. 多表单异步验证 可以用 Promise validate

    https://www.jb51.net/article/140062.htm vue动态绑定组件子父组件多表单验证功能的实现代码 // 加载组件:每次下拉框监听则给changValue新赋值,如果下 ...

  10. python:第一章

    完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行. 代码少的代价是运行速度慢,C程序运行1秒钟,Java程序可能需要2秒,而Python程序可能就需要1 ...