欢迎来到天天文库
浏览记录
ID:6075198
大小:76.00 KB
页数:14页
时间:2018-01-02
《java十大低级错误》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Java十大低级错误1前言本文档根据java开发人员在编码过程中容易忽视或经常出错的地方进行了整理,总结了十个比较常见的低级错误点,方便大家学习。2Java十大低级错误1、不能用“==”比较两个字符串内容相等。2、对list做foreach循环时,循环代码中不能修改list的结构。3、日志和实际情况不一致;捕获异常后没有在日志中记录异常栈。4、魔鬼数字。5、空指针异常。6、数组下标越界。7、将字符串转换为数字时没有捕获NumberFormatException异常。8、对文件、IO、数据库等资源进行操作后没有及时、正确进行释放。9、循环体编码时不考虑性能,循环体中包含不需
2、要的重复逻辑。10、数据类没有重载toString()方法。3解读&案例3.1不能用“==”比较两个字符串内容相等。3.1.1解读两个字符串在比较内容是否相等的时候,如果使用“==”,当两个字符串不是指向内存中同一地址,那么即使这两个字符串内容一样,但是用“==”比较出来的结果也是false。所以两个字符串在比较内容是否相等的时候一定要使用“equals”方法。1.1.1示例下面就是一个字符串比较的例子:publicclassTest{publicstaticvoidmain(String[]args){Stringa=newString("a");Stringa2="a
3、";if(a==a2){System.out.println("a==a2returntrue.");}else{System.out.println("a==a2returnfalse.");}if(a.equals(a2)){System.out.println("a.equals(a2)returntrue.");}else{System.out.println("a.equals(a2)returnfalse.");}}}最终输出的结果为:a==a2returnfalse.a.equals(a2)returntrue.1.2不能在foreach循环中修改list结
4、构1.2.1解读在jdk1.5版以上的foreach循环写法中,不能在循环代码中对正在循环的list的结构进行修改,即对list做add、remove等操作,如果做了这些操作,必须立即退出循环,否则会抛出异常。1.1.1示例publicclassTest{publicstaticvoidmain(String[]args){Listlist=newArrayList();Personp1=newPerson("张三",23);Personp2=newPerson("李四",26);Personp3=newPerson("王五",34);Pe
5、rsonp4=newPerson("刘二",15);Personp5=newPerson("朱六",40);list.add(p1);list.add(p2);list.add(p3);list.add(p4);list.add(p5);for(Personp:list){if("王五".equals(p.getName())){list.remove(p);//不能在此时删除对象。}elseif("李四".equals(p.getName())){list.remove(p);//不能在此时删除对象。}}System.out.println(list.size());}
6、}classPerson{privateStringname;privateintage;publicPerson(Stringname,intage){this.name=name;this.age=age;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}}解决上面代码红色部分的问题,可以通过循环取出对象,然后再循环结束后再
7、进行删除。Listlist=newArrayList();Personp1=newPerson(newString("张三"),23);Personp2=newPerson(newString("李四"),26);Personp3=newPerson(newString("王五"),34);Personp4=newPerson(newString("刘二"),15);Personp5=newPerson(newString("朱六"),40);list.add(p1);list.add(p2);
此文档下载收益归作者所有