Java程序员容易犯的十大低级错误

  

本文根据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程序员容易犯的十大低级错误