java10大低级错误
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java十大低级错误
1、方法和变量命名随意而不规范,没有类注释、方法注释或注释不规范,代码修改后,不同步修改注释,导致注释与代码不符。
2、数据类不重载toString()方法(说明:编程规范要求“所有的数据类必须重载toString() 方法,返回该类有意义的内容”)。
3、对方法的调用不进行空指针判断而造成空指针异常。
4、数据库操作、IO操作的资源没有及时释放,数据库结果集和连接释放顺序不正确,或者使用没有必要的预处理。
5、循环体内包含了大量没有必要在循环中处理的语句,循环体内循环获取数据库连接,循环体内进行不必要的try-catch操作。(说明:编程规范中建议“不要在循环体内调用同步方法和使用 try-catch 块”)
6、嵌套使用try-catch,或者try-catch后面没有必要的finally操作(说明:数据库操作、IO操作等需要使用结束close()的对象必须在try -catch-finally 的finally中close())。
7、不对数组下标作范围校验。
8、equals操作时没有将常量放在equals操作符的左边(说明:字符串变量与常量比较时,先写常量,这样可以避免空指针异常)。
9、字符串转化为数字时没有做异常处理。
10、没有在异常分支记录日志导致问题定位困难。
代码案例(说明:所有样例都是错误的代码):
1.
2.1、方法和变量命名随意而不规范,没有类注释、方法注释或注释不规范,代
码修改后,不同步修改注释,导致注释与代码不符。 3.
4.public class MethodName
5.{
6. public void a( int i )
7. {
8.//错误:变量名称太短
9.String b = "";
10.
11.//错误:变量名称太长,超过40个字符
12.String longVariableLongVariableLongVariableLongVariable = "";
13.}
14.
15. /**
16.* <一句话功能简述>方法命名约定:应以小写字母开头、同时命名
不应含有下划线字符。
17.* <功能详细描述>
18.* @param i
19.* @see [类、类#方法、类#成员]
20.*/
21. public void Check_Method( int i )
22. {
23.// 错误:方法名称不规范
24.//错误:变量名称不规范
25.String b = "";
26. }
27.
28. /**
29. * <一句话功能简述>变量、方法名、类名、接口名避免出现美元字符$。
30. * <功能详细描述>
31. * @param i
32. * @see [类、类#方法、类#成员]
33. */
34. public void Fo$o ()
35.{
36.// 错误:方法名称不规范
37.}
38.
39. /**
40.* <一句话功能简述>注意hashCode方法大小写。此规则用于推测作
者可能是要实现hashCode方法,但大小写错了。
41.* <功能详细描述>
42.* @return
43.* @see [类、类#方法、类#成员]
44.*/
45. public int hashcode()
46. {
47.// 错误:方法名称不规范
48.int temp = 0;
49.// oops, this probably was supposed to be hashCode
50.return temp;
51.
52. }
53.
54. /**
55.*
56.* @param o 只有参数类型和返回值类型不一致,方法名equals完
全相同(包括大小写也相同),推测可能是想实现equals方法。
57.* @return
58.*/
59. public int equals(Object o)
60. {
61.// 错误:方法名称不规范
62.// oops, this probably was supposed to be boolean equals
63.int temp = 0;
64.return temp;
65. }
66.
67. /**
68.* <一句话功能简述>只有参数类型和返回值类型不一致,方法名
equals完全相同(包括大小写也相同),推测可能是想实现equals方法。
69.* <功能详细描述>
70.* @param s
71.* @return
72.* @see [类、类#方法、类#成员]
73.*/
74. public boolean equals(String s)
75. {
76.// 错误:方法名称不规范
77.// oops, this probably was supposed to be equals(Object)
78.return true;
79. }
80.
81. /**
82.* <一句话功能简述>'getX()'方法同时返回值又是 'boolean' ,则
建议用'isX()'命名。checkParameterizedMethods属性用于决定是否对带参数的方法检测。
83.* <功能详细描述>
84.* @return
85.* @see [类、类#方法、类#成员]
86.*/
87. public boolean getFoo()
88. {
89.// 错误:方法名称不规范
90.// bad
91.return true;
92. }
93.
94.}
95.
96.
97.2、数据类不重载toString()方法(说明:编程规范要求“所有的数据类必
须重载toString() 方法,返回该类有意义的内容”)。
98.public class Content extends BaseMetaData
99.{
100.private String oldCID;
101.
102. private String cId;
103.
104. private String spId;
105.
106. private int type;
107.
108. private int serviceType; 109..........................
110. /**
111.* 设置修改标识
112.* @param update_flag 修改标识
113.*/
114. public void setUpdate_flag(String update_flag)
115. {
116.this.updateFlg = update_flag;