【阿里】Java开发手册记录
来源:互联网 发布:荷兰国旗问题算法 编辑:程序博客网 时间:2024/04/30 06:56
阿里Java开发手册记录
众所周知,java业界标准,随手记录自己没做好的地方,不定时更新…
一、 编程规约
(一)命名风格
1. POJO类(DO/DTO/BO/VO的统称)中布尔类型的变量,都不要加is,否则部分框架解析会引起序列化错误。
(二)代码风格
1. 缩进采用4个空格,禁止使用tab字符。 (idea不要勾选Use tab character,eclipse中需勾选insert spaces of tabs) 2. IDE的text file encoding设置为UTF-8; IDE中文件的换行符使用Unix格式,不要使用windows格式。
(三)OOP规约
1. 所有的相同类型的包装类对象之间值的比较,全部使用equals方法比较。 说明:对于Integer var = ? 在-128至127范围内的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象,这个区间内的Integer值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用equals方法进行判断。 2. 所有的POJO类属性必须使用包装数据类型。(数据库的查询结果可能是null,因为自动拆箱,用基本数据类型接收有NPE风险。) 3. RPC方法的返回值和参数必须使用包装数据类型。 4. 所有的局部变量使用基本数据类型。 5. 使用索引访问用String的split方法得到的数组时,需做最后一个分隔符后有无内容的检查,否则会有抛IndexOutOfBoundsException的风险。 6. 循环体内,字符串的连接方式,使用StringBuilder的append方法进行扩展
(四)集合处理
1. 使用集合转数组的方法,必须使用集合的toArray(T[] array),传入的是类型完全一样的数组,大小就是list.size()。 2. 使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportedOperationException异常。(使用的适配器模式,只是转换接口,后台的数据仍然是数组) 3. 泛型通配符<? extends T>来接收返回的数据,此写法的泛型集合不能使用add方法,而<? super T>不能使用get方法,做为接口调用赋值时易出错。 说明:扩展说一下PECS(Producer Extends Consumer Super)原则:1)频繁往外读取内容的,适合用上界Extends。2)经常往里插入的,适合用下界Super。 4. 不要在foreach循环里进行元素的remove/add操作。remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。 `` Iterator<String> it = a.iterator(); while (it.hasNext()) { String temp = it.next(); if (删除元素的条件) { it.remove(); } } `` 5. 在JDK7版本及以上,Comparator要满足如下三个条件,不然Arrays.sort,Collections.sort会报IllegalArgumentException异常。 6. 集合初始化时,指定集合初始值大小(initialCapacity = (需要存储的元素个数 / 负载因子) + 1。注意 负载因子(即loader factor)默认 为 0.75,如果 暂时 无法确定 初始 值大小,请设置 为 16。) 7. 使用entrySet遍历Map类集合KV,而不是keySet方式进行遍历。 说明:keySet其实是遍历了2次,一次是转为Iterator对象,另一次是从hashMap中取出key所对应的value。而entrySet只是遍历了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.foreach方法。
最后附上最新的阿里java开发手册下载连接5mjq
阅读全文
0 0
- 阿里Java开发手册记录
- 【阿里】Java开发手册记录
- 阿里java开发手册
- 阿里 java 开发手册
- 阿里java开发手册
- 阿里java开发手册乐学版
- 阿里Java开发手册之编程规约
- 阿里Java开发手册之编程规约
- 阿里JAVA开发手册的部分收录
- 阿里JAVA开发手册重点摘要
- 阿里Java开发手册之编程规约
- 阿里开发手册
- 阿里的JAVA手册
- JAVA阿里规范手册
- 阿里巴巴java开发手册学习记录
- 阿里巴巴java开发手册关键点记录
- 阿里JAVA开发手册(很多值得学习的地方)
- 读阿里Java开发手册后的一些整理
- PHP 开发者该知道的 5 个 Composer 小技巧
- 2017 Multi-University Training Contest 1 (9/12)
- Java反射机制详解
- nyoj273 字母小游戏
- SQL Server触发器创建、删除、修改、查看
- 【阿里】Java开发手册记录
- HTML的文档结构
- 判断文件是否存在
- spring boot
- 01组成的N的倍数
- 概率与数理统计学习总结四---连续型随机变量及其概率密度
- 求一个数的约数
- VS2017使用方法 使用C语言写helloworld
- hdu3671 Boonie and Clyde 割点