阿里巴巴的java代码规范

一:命名规范

1.代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束,也不能用中英文结合。这些特殊符号在java里面大多有语法相关的含义。

2.包名统一使用小写,类名必须是大驼峰,方法名、参数名、成员变量、局部变量都是小驼峰,常量命名全部大写,单词间用下划线隔开。

3.POJO 类中布尔类型的变量,不加 is,解析可能会引起序列化错误。

4.要做到望文知意,Service 和 DAO 类,暴露出来的是接口,内部 的实现类用 Impl 的后缀与接口区别。

5.单个对象用get,多个对象用list,统计值用 count,插入的方法用 save(推荐)或 insert就是新增,删除的方法用 remove(推荐)或 delete,修改的方法用 update。

二:常量定义

1.long 或者 Long 初始赋值时,必须使用大写的 L,不能是小写的 l,避免跟数字1混淆。

2.不要使用一个常量类维护所有常量,应该按常量功能进行归类。

三:格式规约

1.大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果 是非空代码块则:

1) 左大括号前不换行。

2) 左大括号后换行。

3) 右大括号前换行。

4) 右大括号后还有 else 等代码则不换行;表示终止右大括号后必须换行。

举个例子:

if (condition) {
    // 空代码块
}

if (condition) {
    // 非空代码块开始
    statement1;
    statement2;
    // 非空代码块结束
}

if (condition) {
    // 非空代码块开始
    statement1;
    statement2;
    // 非空代码块结束
} else {
    // 终止右大括号后需要换行
    statement3;
    statement4;
}

2.缩进采用 4 个空格,禁止使用 tab 字符,if/for/while/switch/do 等保留字与左右括号之间都必须加空格,任何运算符左右必须加一个空格。

3.单行字符数限制不超过 120 个,超出需要换行,换行时遵循如下原则:

1) 第二行相对第一行缩进 4 个空格,从第三行开始,不再继续缩进。

2) 运算符与下文一起换行。

3) 方法调用的点符号与下文一起换行。

4) 在多个参数超长,逗号后进行换行。

5) 在括号前不要换行。

四:OOP 规约

1.Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。如:"test".equals(object);

2.定义 DO/DTO/VO 等 POJO 类时,不要设定任何属性默认值。

五:集合处理

1.使用集合转数组的方法,必须使用集合的 toArray(T[] array),传入的是类型完全 一样的数组,大小就是 list.size()。

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

3.泛型通配符来接收返回的数据,此写法的泛型集合不能使用 add 方 法。

4.不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式。

六、并发处理

1.创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。

2.线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。

3.线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样 的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。

4.SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,如果定义为 static,必须加锁,或者使用 DateUtils 工具类。

5.对多个资源、数据库表、对象同时加锁时,需要保持一致的加锁顺序,否则可能会造 成死锁。

七:控制语句

1.在一个 switch 块内,每个 case 要么通过 break/return 等来终止,要么注释说明程 序将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个 default 语句并且 放在最后,即使它什么代码也没有。

2.在 if/else/for/while/do 语句中必须使用大括号,即使只有一行代码。

八:注释规约

1.类、类属性、类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用 //xxx 方式。

2.所有的抽象方法(包括接口中的方法)必须要用 Javadoc 注释、除了返回值、参数、 异常说明外,还必须指出该方法做什么事情,实现什么功能。所有的类都必须添加创建者信息。

3.】方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释 使用/* */注释,注意与代码对齐。

  • 23
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值