Java代码规范
命名规范
类名采用大驼峰,一般为名词,如 ArrayList
方法名采用小驼峰,一般为动词,如 ArrayList的isEmpty()
变量采用小驼峰
常量的字母全部大写,单词之间用下划线连接
包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词,如 java.util.concurrent都是一个单词。包名统一使用单数,如果类名有复数含义,则可以使用复数形式
抽象类使用Abstract或Base开头;异常类使用Exception结尾;测试类名以测试类名开始,以Test结尾
类型与中括号紧挨来定义数组,如 int[]
枚举类名带上Enum后缀,枚举成员名全部大写,单词之间用下划线连接
复合语义下,尽量使用完整的单词组合来命名,如 KeyboardShortcutsHandler、AtomicReferenceFieldUpdater
常量
常量是在作用域内保持不变的值,一般用final关键字进行修饰,根据作用域区分,分为全局常量、类内常量、局部常量。全局常量是指类的公开静态属性,使用public static final修饰;类内常量是私有静态属性,使用private static final修饰;局部常量分为方法常量和参数常量,前者是在方法或代码块内定义的常量,后者是在定义形式参数时,增加final标识,表示此参数值不能被修改。全局常量和类内常量是最主要的常量表现形式,它们的命名方式比较特殊,采用字母全部大写、单词之间加下画线的方式。而局部常量采用小驼峰形式即可。
在常量中,拒绝使用魔法值。魔法值即“共识层面”上的常量,直接以具体的数值或者字符出现在代码中。这些不知所云的魔法值极大地影响了代码的可读性和可维护性。
举个栗子:
public void getonlinePackageCourse(Long packageId, Long userId) {
if (packageId == 3) {
logger.error("线下课程,无法在线观看");
return;
}
//其他逻辑处理
PackageCourse online = packageService.getByTeacherId(userId);
if (online.getPackageId()