1. 聚能聊>
  2. 话题详情

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

lpajwtbt_2
  
阿里大法 《阿里巴巴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块释放资源,导致一直占用内存。

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

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    淘公仔 x 3

  • 奖品二

    聆听专属T恤衫 x 3

  • 奖品三

    淘公仔U盘 x 2

66个回答

0

luking 复制链接去分享

以前遇到过数据库连接数过多的报错,原因是有人在代码中没有正确关闭数据库。_(:зゝ∠)_好坑的孩纸

0

浮生递归 复制链接去分享

JAVA开发中遇到最大的坑就是买了个虚拟主机,是ASP.net的,不支持JAVA
然后写开发方案的时候,开发工具写了Visual Studio,被技术总监喷了一脸口水(求U盘……)
screenshot

0

此生 复制链接去分享

ArrayList在遍历时删除,不能直接remove,必须采用iterator,采用iterator移除,否则程序报错。

0

1250887607742426 复制链接去分享

io就关闭前不要flush!

0

liuxu99 复制链接去分享

大二了这学期才刚学 struts2 各种绕
最坑的感觉还是才接触Java的时候
写了很久代码 最后运行出错 检查了几遍最后发现崩溃边缘发现中了中文分隔符!

4