本文根据java开发人员在编码过程中容易忽视或经常出错的地方进行了整理,总结了十个比较常见的低级错误点,方便大家学习。
1,不能用“==北冉狭礁鲎址谌菹嗟取?/p>
2,对列表做foreach循环时,循环代码中不能修改列表的结构。
3日志和实际情况不一致,捕获异常后没有在日志中记录异常栈。
4,魔鬼数字。
5,空指针异常。
6,数组下标越界。
7,将字符串转换为数字时没有捕获NumberFormatException异常。
8,对文件,IO、数据库等资源进行操作后没有及时,正确进行释放。
9日循环体编码时不考虑性能,循环体中包含不需要的重复逻辑。
10,数据类没有重载toString()方法。
引用><强> 1不能用“==北冉狭礁鲎址谌菹嗟取?/强>
解读
两个字符串在比较内容是否相等的时候,如果使用“==?当两个字符串不是指向内存中同一地址,那么即使这两个字符串内容一样,但是用“==北冉铣隼吹慕峁彩羌俚?所以两个字符串在比较内容是否相等的时候一定要使用“=狈椒ā?/p>
示例
下面就是一个字符串比较的例子:
{publicclass测试 publicstaticvoid main (String [] args) { 字符串a=新的字符串(“a”); 字符串a2=癮”; 如果a2 (==) { system . out。println (“==a2return真的。”); } 其他的 { system . out。println (“==a2 returnfalse。”); } 如果(a.equals (a2)) { System.out.println (“a.equals (a2)返回true。"); } 其他的 { System.out.println (“a.equals (a2)返回false。”); } } }最终输出的结果为:
==a2返回false。a.equals (a2)返回true。
引用><强> 2不能在foreach循环中修改单结构强>
解读
在jdk1.5版以上的foreach循环写法中,不能在循环代码中对正在循环的列表的结构进行修改,即对列表做添加、删除等操作,如果做了这些操作,必须立即退出循环,否则会抛出异常。
示例
{publicclass测试 publicstaticvoid main (String [] args) { List列表=new ArrayList (); 人p1=new(“张三”,23); 人p2=new(“李四”,26); 人p3=new(“王”五,34); 人p4=new(“刘二”,15); 人p5=new(“朱六”,40); list.add (p1); list.add (p2); list.add (p3); list.add (p4); list.add (p5); (人p:列表) { 如果(“王”五.equals (p.getName ())) { list.remove (p);//不能在此时删除对象。 } elseif(“李四“.equals (p.getName ())) { list.remove (p);//不能在此时删除对象。 } } System.out.println (list.size ()); } } 类人 { 私人字符串名称; privateintage; 公众人物(字符串名称,int年龄) { this.name=名称; 这一点。年龄=年龄; } 公共字符串getName () { returnname; } publicvoid setName(字符串名称) { this.name=名称; } publicint getAge () { returnage; } publicvoid setAge (int年龄) { 这一点。年龄=年龄; } } 解决上面代码红色部分的问题,可以通过循环取出对象,然后再循环结束后再进行删除。
List列表=new ArrayList (); 人p1=新人(新的字符串(“张三”),23); 人p2=新人(新的字符串(“李四”),26); 人p3=新人(新的字符串(“王”五),34); 人p4=新人(新的字符串(“刘二”),15); 人p5=新人(新的字符串(“朱六”),40); list.add (p1); list.add (p2); list.add (p3); list.add (p4); list.add (p5); 人wangwu=零; 人lisi=零; (人p:列表) { 如果(“王”五.equals (p.getName ())) { wangwu=p; } elseif(“李四“.equals (p.getName ())) { lisi=p; } } list.remove (wangwu); list.remove (lisi);>之前 <强> 3日志规范性强>
解读
日志是定位问题时最重要的依据,业务流程中缺少必要的日志会给定位问题带来很多麻烦,甚至可能造成问题完全无法定位。
Java程序员容易犯的十大低级错误