1.以下两种for循环
这一种循环,会额外创建一个迭代器,然后遍历值。当遇到链表、Hashmap表时,用它速度很快。因为这样不需要通过遍历整个集合查找元素。
for(String str : list){
}
int len=list.size();
for(int i=0;i
public String get(){
String str = "dddddd";
return new StringBuilder(str).reverse().toString();
}
3.在try catch中要加finally,释放一些特殊的操作
(1)文件流操作,不释放的话容易导致流溢出。
(2)解锁问题
4.HashMap在创建时,最好预估一下大小。因为HashMap会在放不下时做刷新,这时,会将小的haspMap拷贝一份给更大的haspMap.
预估大小,这样可以满足大部分场景,如果大小仍然超出了该怎么办?
5.字符串的不可变性,不用再说了,前面总结过
6.单引号和双引号是有区别的
7.java中创建对象的确很昂贵。不要随便乱建对象。
从效率上讲,越少越好。可是总是有那么多的大包,如果碰到性能瓶颈,那么这个方法就是一个出路。
从面向对象的角度看,我觉得,如果性能不是瓶颈,领域模型的设计,还有逻辑清晰、容易理解也许更重要。需要视情况而定。