Java编程规约
命名风格
类名使用UpperCamelCase风格
方法名、参数名、成员变量和局部变量都统一使用lowerCamelCase风格
如果模块、接口、类和方法使用了设计模式,再命名时要体现出具体模式。
例:public class OrderFactory;
public class LoginProxy;
public class ResourceObserver;接口类中的方法和属性不要加任何修饰符号(public也不要加),保持代码的简洁性,并加上有效的javadoc注释。尽量不要在接口里定义常量,如果一定要定义,最好确定该常量与接口的方法相关,并且时整个应用的基础常量。
常量定义
不允许任何魔法值(未经预先定义的常量)直接出现在代码中。
反例:String key = "Id#taobao" + tradeId;
不要使用一个常量类维护所有常量,要按常量功能进行归类,分开维护。
代码格式
if/ for/ while/ switch/ do等保留字与左右括号之间必须加空格。
if (a == b) {}
任何二目、三目运算符的左右两边都需要加一个空格(包括赋值运算符 =、逻辑运算符 &&、加减乘除符号等)。
采用4个空格缩进,如果要用tab必须设置为一个tab四个空格
IDE的text file encoding设置为UTF-8;IDE中文件的换行符使用Unix格式,不要使用Windows格式。
OOP规约
避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加成本,直接用类名来访问。
所有的覆写方法必须加@Override注解。
Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals。
所有整型包装类对象之间值的比较,全部使用equals方法比较。
浮点数之间的等值比较,基本数据类型不能使用==来比较,包装数据类型不能用equals来比较。
正例:使用误差或者BigDecimal (1) float a = 1.0F - 0.9F; float b = 0.9F - 0.8F; float diff = 1e-6F; if (Math.abs(a - b) < diff) { System.out.println("true"); } (2)BigDecimal a = new BigDecimal("1.0"); BigDecimal b = new BigDecimal("0.9"); BigDecimal c = new BigDecimal("0.8"); BigDecimal x = a.subtract(b); BigDecimal y = b.subtract(c); if(x.compareTo(y) == 0) { System.out.println("true"); }
BigDecimal的等值比较应使用compareTo,而不是equals
禁止使用BigDecimal(double)这种方法转化
正例:BigDecimal a = new BigDecimal("0.1");//用字符串 BigDecimal b = BigDecimal.valueof(0.1);//valueof
类内方法定义顺序:公有/保护 > 私有 > getter/setter
在getter和setter中不能增加业务逻辑增加问题排查的难度
循环体内,字符串的连接方式使用StringBuilder的append方法进行扩展,避免内存浪费
学累了写一写这个也不错😊
- 标题: Java编程规约
- 作者: sys
- 创建于 : 2024-10-06 22:46:19
- 更新于 : 2024-10-08 15:23:43
- 链接: https://yyd-piren.github.io/2024/10/06/Java编程规约/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。