7 编码规范
7.1 规则
6.异常捕获后,如果不对该异常进行处理,则应该纪录日志或者ex.printStackTrace() 。
8.运行期异常使用RuntimeException的子类来表示,不用在可能抛出异常的方法声明上加throws子句。
13.调试代码的时候,不要使用 System.out 和 System.err 进行打印,应该使用一个包含统一开关的测试类进行统一打印。
7.2建议
5.对于创建的主要的类,最好置入main()函数,包含用于测试那个类的代码。
7.源程序中关系较为紧密的代码应尽可能相邻。
8 JTEST规范
8.1 规则(1-2 级)
5.不要在if 语句中使用等号= 进行赋值操作。
9.不要覆盖父类的静态方法和私有方法。
10.不要覆盖父类的属性。
11.不要使用两级以上的内部类。
12.把内部类定义成私有类。
13.去掉接口中多余的定义(不使用 public, abstract, static, final 等,这是接口中默认的)。
16.不要使用 System.getenv() 方法。
17.不要硬编码 ‘\n’和‘\r’作为换行符号。
26.线程同步中,在循环里面使用条件测试(使用 while(isWait) wait() 代替 if(isWait) wait())。
27.不掉用 Thread 类的 resume(), suspend(), stop() 方法。
28.减小单个方法的复杂度,使用的 if, while, for, switch 语句要在10个以内。
29.在Servlets中,重用JDBC连接的数据源。
8.2 建议(3级或以上)
4.不要对浮点数进行比较运算,尤其是不要进行 ==, !=运算,减少 >, < 运算。
9.不要定义 Error 和 RuntimeException 的子类,可以定义 Exception 的子类。
13.类中不要使用非私有(公有、保护和友好)的非静态属性。
16.初始化时不要使用类的非静态属性。
17.显式初始化所有的局部变量。
18.按照方法名把方法排序放置,同名合同类型的方法应该放一起
24.把 main() 方法放在类的最后。
33.对返回类型为 boolean 的方法使用 is 开头,其它类型的不能使用。
42.单个首字符的比较使用 charAt() 而不用 startsWith() 。
43.对于被除数或者被乘数为2的n次方的乘除运算使用移位运算符 >>, << 。 |
44.一个字符的连接使用‘ ’而不使用 “ ”,如:String a = b + 'c'。 |
45.不要在循环体内调用同步方法和使用 try-catch 块。 |
49.对于“if (condition) do1; else do2;”语句使用条件操作符“(condition)?do1:do2;”。 58.不要重复调用一个方法获取对象,使用局部变量重用对象。 60.避免在同步方法中调用另一个同步方法造成的死锁。 | |
62.使用 wait(), notify() 代替 while(), sleep() 。
71.使用 StringTokenizer 代替 indexOf() 和 substring() 。 |
72.不要在构建器中使用非 final 方法。 |
78.安全:尽量不要使用友好方法、属性和类。