Java 编码规范

参考Sun公司的Java编码规范,半翻译半理解。

  1. 使用空行分割代码块,并给代码块添加注释;
  2. 一个文件一个类(或者接口),将私有类放在引用该类的公用类的后面;
  3. 源文件构成:文件注释、package/import、类或接口的声明;
    1. /*
       * Class name
       * Version info
       * Copyright notice
       * Program description
       */

  4. 使用4个空格作为缩进,避免使用Tab键(Tab键还没有统一的标准,有的是4个空格,有的是8个空格);
  5. 控制每行代码的长度,最多80个字符;
  6. 代码断行时遵循以下规则:
    1. 在逗号之后断行;
    2. 在操作符之前断开;
    3. 使用更高的抽象层级进行断行;
    4. 断行时保证每行的逻辑处理层次是在同一层级的;
    5. 如果上述原则导致代码混乱,断行时直接将新的一行从上一行开始处的第8个空格开始;
  7. 两大类注释,implementation comments(/*...*/ and //) 和 documentation comments(/**...*/);四小类注释,块注释(用于文件描述、方法、数据结构及算法 )、单行注释、行尾注释和结束行注释;
    1. 注释用于抽象地描述代码概要和不能直接从代码中获得的信息(比如业务逻辑)。Comments should be used to give overviews of code and provide addtional information that is not readily available in the code itself.
    2. 注释应该只包含帮助阅读及理解程序的信息。Comments should contain only information that is relevant to reading and understanding the program.
    3. 注释应该是独立于代码的具体实现的,不会因为代码优化而过时。Avoid comments that are likely to get out of date as the code evlves.
    4. 添加注释不是提高代码可读性的好方法,首先得使代码本身的逻辑更加清晰。If you feel compelled to add a comment, consider rewriting the code to make it clearer.
  8. 一行一个变量或方法声明,变量类型与变量名之间间隔一个空格;
  9. 将声明放在尽可能前面的地方;
  10. 变量声明时进行初始化;
  11. 类与接口声明时遵循以下规则:
    1. 方法名和参数名开始的左括号间没有空格;
    2. 方法申明开始的左大括号与方法名在同一行;
    3. 方法申明结束的右大括号单独一行;
    4. 方法申明之间空行;
  12. 一行一句;
  13. 使用“{...}”约束函数块,特别是if-else
  14. return语句中避免使用方法,除非该方法的返回结果非常明确;
  15. if-else逻辑块写法:
    1. if (condition) {
          statements;
      }

      if (condition) {
          statements;
      } else {
          statements;
      }

      if (condition) {
          statements;
      } else if (condition) {
          statements;
      } else if (condition) {
          statements;
      }

  16. for逻辑块写法:
    1. for (initializationconditionupdate) {
          statements;
      }

  17. while逻辑块写法:
    1. while (condition) {
          statements;
      }

  18. do-while逻辑块写法:
    1. do {
          statements;
      } while (condition);

  19. switch逻辑块写法:
    1. switch (condition) {
      case ABC:
          statements;
          /* falls through */
      case DEF:
          statements;
          break;
      case XYZ:
          statements;
          break;
      default:
          statements;
          break;
      }

  20. try-catch逻辑块写法:
    1. try {
          statements;
      } catch (ExceptionClass e) {
          statements;
      }

  21. 空行的使用:
    1. 使用两个空行的地方:不同的源代码块之间;不同的类与接口的定义
    2. 使用一个空行的地方:不同的方法、同一方法中变量声明与使用、在块或者单行注释开始前以及同一方法的不同逻辑块之间
  22. 空格的使用:
    1. 关键词与小括号之间;
    2. 参数列表中的逗号之后;
    3. 除了"."之外的所有二元操作符;
    4. for(expr1; expr2; expr3);
    5. 强制类型转换之后
  23. 命名规则:
    1. 类名:使用全拼单词,除非是URL、HTML之类的;首字母大写,其他开头的字母也大写;简单具有描述性;
    2. 接口名:同类名;
    3. 方法名:动词或者动词组;首字母小写;其他开头的字母大写;
    4. 变量:单个单词,全小写;多个单词组合,首字母小写;临时变量一般使用单个字母;
    5. 常量:使用下划线连接多个单词;所有字母大写
  24. 其他:
    1. 使用FIXME和XXX;
    2. 使用括号将简单逻辑运算独立出来,如"(x >= 0) ? x : -x"和"if ((a == b) && (c == d))"
    3. 避免组合赋值,让逻辑清晰简单!如"a = b = c"和"if (c++ = d++) {...}"
    4. 使用常量或者变量代替直接使用数字;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值