`

《阿里巴巴Java开发手册v1.2.0》摘要

 
阅读更多

10.  【强制】序列化类新增属性时,请不要修改 serialVersionUID 字段,避免反序列失败;如果完全不兼容升级,避免反序列化混乱,那么请修改 serialVersionUID 值。

说明:注意 serialVersionUID 不一致会抛出序列化运行时异常。

 

 

13.  【推荐】使用索引访问用String 的split 方法得到的数组时,需做最后一个分隔符后有无 内容的检查,否则会有抛IndexOutOfBoundsException 的风险。  

   说明:  

      String str = "a,b,c,,";   

      String[] ary = str.split(",");   

      //预期大于3,结果是3  

      System.out.println(ary.length);   

 

 5. 【强制】使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。

说明: asList 的返回对象是一个 Arrays 内部类,并没有实现集合的修改方法。 Arrays.asList体现的是适配器模式,只是转换接口,后台的数据仍是数组。

String[] str = new String[] { "a", "b" };

List list = Arrays.asList(str); 

第一种情况:list.add("c");  运行时异常。

第二种情况:str[0] = "gujin";  那么 list.get(0)也会随之修改。

 

 11.  【推荐】高度注意 Map 类集合 K/V 能不能存储 null 值的情况,如下表格:

集合类  Key  Value  Super  说明



 

反例:  由于 HashMap 的干扰,很多人认为 ConcurrentHashMap 是可以置入 null 值,而事实上,

存储 null 值时会抛出 NPE 异常。

 

1. 【强制】不要使用 count(列名)或 count(常量)来替代 count(*), count(*)是 SQL92 定义的

标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。

说明:count(*)会统计值为 NULL 的行,而 count(列名)不会统计此列为 NULL 值的行。

 

 

 

  • 大小: 52.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics