Java 十大低级错误 1 前言本文档根据 java 开发人员在编码过程中容易忽视或经常出错的地方进行了整理, 总结了十个比较常见的低级错误点,方便大家学****2 Java 十大低级错误 1、不能用“== ”比较两个字符串内容相等。 2、对 list 做 foreach 循环时,循环代码中不能修改 list 的结构。 3、日志和实际情况不一致;捕获异常后没有在日志中记录异常栈。 4、魔鬼数字。 5、空指针异常。 6、数组下标越界。 7、将字符串转换为数字时没有捕获 NumberFormatException 异常。 8、对文件、 IO 、数据库等资源进行操作后没有及时、正确进行释放。 9、循环体编码时不考虑性能,循环体中包含不需要的重复逻辑。 10、数据类没有重载 toString() 方法。 3 解读& 案例 不能用“== ”比较两个字符串内容相等。 解读两个字符串在比较内容是否相等的时候, 如果使用“== ”, 当两个字符串不是指向内存中同一地址,那么即使这两个字符串内容一样,但是用“== ”比较出来的结果也是 false 。所以两个字符串在比较内容是否相等的时候一定要使用“ equals ”方法。 示例下面就是一个字符串比较的例子: public class Test { public static void main(String[] args) { String a= new String( "a" ); String a2 = "a" ; if (a == a2) { System. out .println( "a == a2 return true." ); } else { System. out .println( "a == a2 return false." ); } if ((a2)) { System. out .println( "(a2) return true." ); } else { System. out .println( "(a2) return false." ); }}} 最终输出的结果为: a == a2 return false. (a2) return true. 不能在 foreach 循环中修改 list 结构 解读在 版以上的 foreach 循环写法中,不能在循环代码中对正在循环的 list 的结构进行修改, 即对 list 做 add 、 remove 等操作, 如果做了这些操作, 必须立即退出循环, 否则会抛出异常。 示例 public class Test { public static void main(String[] args) { List<Person> list = new ArrayList<Person>(); Person p1 = new Person( " 张三", 23); Person p2 = new Person( " 李四", 26); Person p3 = new Person( " 王五", 34); Person p4 = new Person( " 刘二", 15); Person p5 = new Person( " 朱六", 40); ( p1 ); (p2); (p3); (p4); (p5); for (Person p: list) { if (" 王五" .equals(())) { (p); // 不能在此时删除对象。} else if (" 李四" .equals(())) { (p); // 不能在此时删除对象。}} System. out .println(list. size ()); }} class Person { private String name ; private int age ; public Person(String name, int age) { this . name = name; this . age = age; } public String getName() { return name ; } public void setName(String name) { this . name = name; } public int getAge() { return age ; } public void setAge( int age) { this . ag
java十大低级错误 来自淘豆网www.taodocs.com转载请标明出处.