1 / 23
文档名称:

java十大低级错误.doc

格式:doc   大小:247KB   页数:23页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

java十大低级错误.doc

上传人:文库旗舰店 2020/12/12 文件大小:247 KB

下载得到文件列表

java十大低级错误.doc

相关文档

文档介绍

文档介绍:Java十大低级错误
前言
本文档根据java开发人员在编码过程中容易忽视或经常出错的地方进行了整理,总结了十个比较常见的低级错误点,方便大家学****br/>Java十大低级错误
不能用“==”比较两个字符串内容相等。
对list做foreach循环时,循环代码中不能修改list的结构。
日志和实际情况不一致;捕获异常后没有在日志中记录异常栈。
魔鬼数字。
空指针异常。
数组下标越界。
将字符串转换为数字时没有捕获NumberFormatException异常。
对文件、IO、数据库等资源进行操作后没有及时、正确进行释放。
循环体编码时不考虑性能,循环体中包含不需要的重复逻辑。
数据类没有重载toString()方法。
解读&案例
不能用“==”比较两个字符串内容相等。
解读
两个字符串在比较内容是否相等的时候,如果使用“==”,当两个字符串不是指向内存中同一地址,那么即使这两个字符串内容一样,但是用“==”比较出来的结果也是false。所以两个字符串在比较内容是否相等的时候一定要使用“equals”方法。
示例
下面就是一个字符串比较的例子:
public class Test {
public static void main(String[] args)
{
String a = new String("a");
String a2 = "a";
if(a == a2)
{
("a == a2 return true.");
}
else
{
("a == a2 return false.");
}

if((a2))
{
("(a2) return true.");
}
else
{
("(a2) return false.");
}
}
}
最终输出的结果为:
a == a2 return false.
(a2) return true.
不能在foreach循环中修改list结构
解读
,不能在循环代码中对正在循环的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); // 不能在此时删除对象。
}
}
(());
}
}
class Person
{
private String name;
private int age;
public Person(String name, int age)
{
= name;
= age;
}
public String getName()
{
return name;
}
public void setName(String name)
{