Java编程规范总结

命名风格

  1. 代码中的命名均不能以下划线或美元符号开始,也不能以下划线和美元符号结束。
  2. 代码中的命名严禁使用拼音和英文混合的方式,更不许直接使用中文,即使是纯拼音的命名方式也应该避免采用
  3. 类名使用UpperCamelCase风格,必须遵从驼峰形式
  4. 方法名、参数名、成员变量、局部变量统一使用lowerCamelCase 风格,必须遵从驼峰形式。
  5. 常量名全部大写,单词间用下划线隔开,语义完整清楚。
  6. 抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾。
  7. 中括号是数组类型的一部分,数组定义如下:String[] args;
  8. 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。
  9. 杜绝完全不规范的缩写,避免望文不知义。
  10. 如果使用到了设计模式,建议在类名中体现出具体模式。
  11. 枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开。
  12. 不允许任何魔法值(即未经定义的常量)直接出现在代码中。
  13. long 或者 Long 初始赋值时,必须使用大写的 L,不能是小写的 l,小写容易跟数字 1 混淆,造成误解。

代码格式

  1. 大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则:
  1. 左大括号前不换行。
  2. 左大括号后换行。
  3. 右大括号前换行。
  4. 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。
  1. 左小括号和字符之间不出现空格;同样,右小括号和字符之间也不出现空格。
  2. if/for/while/switch/do 等保留字与括号之间都必须加空格。
  3. 任何二目、三目运算符的左右两边都需要加一个空格。
  4. 缩进采用 4 个空格,禁止使用 tab 字符。
  5. 单行字符数限制不超过 120 个,超出需要换行,换行时遵循如下原则:
  1. 第二行相对第一行缩进 4 个空格,从第三行开始,不再继续缩进。
  2. 运算符与下文一起换行。
  3. 方法调用的点符号与下文一起换行。
  4. 在多个参数超长,在逗号后换行。
  5. 在括号前不要换行。
  1. 方法参数在定义和传入时,多个参数逗号后边必须加空格。
  2. 不允许把多短语句卸载一行中,即一行只能写一条语句。
  3. If,for,do,while,case,switch,default等语句自占一行,且if,for,do,while等语句的执行语句无论多少都要加大括号。
  4. 相对独立的程序块之间,变量说明后必须加空行。
  5. 在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后都要加空格;进行非对等操作时,如果是关系密切的立即操作符(如.),后不应加空格。
  6. 逗号、分号只在后面加空格。
  7. 比较操作符、赋值操作符“=”、“+=”,算数操作符“+”、“%”,逻辑操作符“&&”、“&”,位域操作符“<<”、“^”等双目操作符前后加空格。
  8. “!”、“~”、“++”、“--”、“&”(地址运算符)等单目操作符前后不加空格。
  9. “.”前后不加空格。

控制语句

  1. 在一个 switch 块内,每个 case 要么通过 break/return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个 default 语句并且放在最后,即使它什么代码也没有。
  2. 在 if/else/for/while/do 语句中必须使用大括号。即使只有一行代码,避免使用
  3. 单行的形式:if (condition) statements;
  4. 表达异常的分支时,少用 if-else 方式,这种方式可以改写成:
  5. 接着写 else 的业务逻辑代码;
  6. 说明:如果非得使用 if()...else if()...else...方式表达逻辑避免后续代码维护困难,请勿超过 3 层。
  7. 除常用方法(如 getXxx/isXxx)等外,不要在条件判断中执行其它复杂的语句,将复杂逻辑判断的结果赋值给一个有意义的布尔变量名,以提高可读性。
  8. 循环体中的语句要考量性能,以下操作尽量移至循环体外处理,如定义对象、变量、获取数据库连接,进行不必要的 try-catch 操作(这个 try-catch 是否可以移至循环体外)。

注释规约

  1. 类、类属性、类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用//
  2. 所有的抽象方法(包括接口中的方法)必须要用 Javadoc 注释、除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。
  3. 所有的类都必须添加创建者和创建日期
  4. 方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/* */注释,注意与代码对齐。
  5. 所有的枚举类型字段必须要有注释,说明每个数据项的用途。
  6. 与其“半吊子”英文来注释,不如用中文注释把问题说清楚。专有名词与关键字保持英文原文即可
  7. 代码修改的同时,注释也要进行相应的修改,尤其是参数、返回值、异常、核心逻辑等的修改。
  8. 合理处理注释掉的代码。在上方详细说明,而不是简单的注释掉。如果无用,则删除。
  9. 特殊注释标记,请注明标记人与标记时间。注意及时处理这些标记,通过标记扫描,经常清理此类标记。线上故障有时候就是来源于这些标记处的代码。

  1. 待办事宜(TODO):( 标记人,标记时间,[预计处理时间])表示需要实现,但目前还未实现的功能。这实际上是一个 Javadoc 的标签,目前的 Javadoc还没有实现,但已经被广泛使用。只能应用于类,接口和方法(因为它是一个 Javadoc 标签)。
  2. 错误,不能工作(FIXME):(标记人,标记时间,[预计处理时间])在注释中用 FIXME 标记某代码是错误的,而且不能工作,需要及时纠正的情况。
  1. 将注释与上面的代码用空行隔开。
  2. 对变量的定义和分支语句(条件分支、循环分支等)必须编写注释。
  3. 对于switch语句下的case语句,如果因为特殊情况需要处理完一个case后进入下一个case处理,必须在该case语句处理完、下一个case语句前加上明确的注释,防止无辜遗漏break语句。
  4. 在程序块的结束行右方加注释标记,以表明某程序块结束。
  5. 顺序实现流程的说明用1、2、3、4在每个实现步骤部分的代码前面进行注释。

 

猜你喜欢

转载自blog.csdn.net/weixin_42580646/article/details/88072900