effective Java读书笔记-通用程序设计

最近继续在翻阅《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,这样做很容易出错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值