阿里巴巴Java开发手册查漏补缺
一、编程规范
(一)命名风格
- 5 常量名全部大写,单词之间下划线:MAX_STOCK_COUNT
- 7 数组定义:String[] args
- 8 POJO类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。
(二)常量定义
- 2 long型赋值,用大写的L,Long a=2L;
(三)代码格式
- 1 大括号
1 | if (a == b) { |
- 4 任何二目、三目运算符的左右两边都需要加一个空格:
a == b
、a = b
- 5 采用4个空格缩进
- 6 注释的双斜线与注释内容之间 有且仅有一个空格
- 7 单行字符超过120个字符换行,第二行相对第一行继续缩进4字符,第三回不继续缩进
- 8 方法参数在定义和传入时,多个参数逗号后边必须加空格
method("a", "b", "c");
- 9 IDE的text file encoding设置为UTF-8;
(四) OOP 规约
- 1 静态变量或静态方法,直接使用类名访问
- 2 所有的覆写方法,必须加@Override 注解。
- 6 Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。
- 15 类内方法定义顺序依次是:公有方法或保护方法 > 私有方法 > getter/setter 方法。
- 19 Object实现的是浅拷贝
(五)集合处理
(六)并发处理
(七)控制语句
- 1 在一个 switch 块内,都必须包含一个 default 语句并且 放在最后,即使它什么代码也没有。
- 2 if wlse for while do语句必须有大括号,
(八)注释
- 1 Javadoc注释
- 5 枚举字段要有注释
- 11 代办事宜(TODO):(标记人,标记时间,[预计处理时间])
错误,不能工作(FIXME):(标记人,标记时间,[预计处理时间])
(九)其他
- 4 注意 Math.random() 这个方法返回是 double 类型,注意取值的范围 0≤x<1(能够 取到零值,注意除零异常),如果想获取整数类型的随机数,不要将 x 放大 10 的若干倍然后 取整,直接使用 Random 对象的 nextInt 或者 nextLong 方法。
- 5 获取当前毫秒数 System.currentTimeMillis();如果想获取更加精确的纳秒级时间值,使用 System.nanoTime()的方式