最近继续在翻阅《Effective Java》,这是一本java的经典书籍,需要好好研究研究,现记录一些自己学到的新知识点。
1.for-each循环优先于传统的for循环
java 1.5发行版本以前遍历的做法:
for(Iterator i = c.iterator;i.hasNext();){
doSomething((Element)i.next);
}
java 1.5发行版本引入for-each循坏,通过完全隐藏迭代器或者索引变量,避免了混乱和出错的可能。
for(Element e: elements){
doSomething(e);
}
优点主要是简单,不容易出错。也避免复制粘贴的低级错误。
2.了解和使用类库
很多方法和问题基本类库都有相应的实现,不要自己重复造轮子。必须了解的类库有:
- java.lang
- java.util
- java.io
- java.util.concurrent 并发实用工具类
3.当心字符串连接的性能
字符串连接操作符(+)是把多个字符串合并为一个字符串。连接n个字符串而重复地使用字符串连接操作符,需要n的平凡级的时间。当两个字符串被连接在一起时,他们的内容都要被拷贝。
public String statement(){
String result = "";
for (int i=0;i<100;i++){
result += lineForItem(i);
}
return result;
}
如果项目数量巨大,为了获得更好的性能,请使用StringBuilder替代String:
public String statement(){
StringBuilder b = "";
for (int i=0;i<100;i++){
b.append(lineForItem(i));
}
return b.toString();
}
4. 谨慎地进行优化
要努力编写好的程序而不是快的程序。
5. 返回0长度的数组或者集合,而不是null
好处是避免每一处调用的地方都判断一次null,这样做很容易出错。