admin 发表于 2017-2-22 10:51

Java开发者们,那些年我们一起踩过的坑



阿里大法 《阿里巴巴Java开发手册(正式版)》发布! 当然好的规范在一定程度上可以避免一些坑。


然而在实际开发中,由于开发者水平不同,写出的代码质量也有所迥异。


我们每天都在写Java程序,可能我们更多的是为了结果,但是在写代码的过程中还是有许多需要注意的地方。

一些初级开发者甚至老手为了方便可能会在Spring中的Service中添加成员变量,由于Spring的bean默认是单例模式,对于单例模式来说,不仅方便多线程调用该实例,更主要是减小了频繁创建带来的系统消耗。然而在多线程下并发会导致数据混乱。

最容易被忽视的Integer数据类型比较,使用==比较 而得到与期望相反的结果。


Integer a = 128;
Integer b = 128;
System.out.println(a==b);



HashMap size陷阱,本意是希望给HashMap设置初始值, 避免扩容(resize)的开销,但没有考虑当添加的元素数量达到HashMap容量的75%时将出现resize。


Map map = new HashMap(collection.size());
for (Object o : collection) {
      map.put(o.key, o.value);
}

不使用finally块释放资源,导致一直占用内存。


多年的开发后,多多少少大家都会有经历过各式各样的暗坑,只有这样才会促使开发者成长。大家又有踩过那些"暗"坑呢?筒子们都来聊聊,彼此长长经验。



https://yq.aliyun.com/roundtable/48549


页: [1]
查看完整版本: Java开发者们,那些年我们一起踩过的坑