代码规范
2015-08-28 09:34
381 查看
1.局部变量 : 在第一次需要使用它时才声明。 局部变量在声明时最好就进行初始化,或者声明后尽快进行初始化。 2.switch,case : case语句使用// fall through说明程序将继续执行到下一个语句组(case) switch (input) { case 1: case 2: prepareOneOrTwo(); // fall through case 3: handleOneTwoOrThree(); break; default: handleLargeNumber(input); } 源文件结构: 1.如果一个文件包含许可证或版权信息,那么它应当被放在文件最前面。 2.列限制并不适用于package和import语句。(即package语句写在一行里) 3.import导入包规则: 3.1 不要通配符*:不要出现类似这样的import语句:import java.util.*; 3.2 import语句可分为以下几组,按照这个顺序,每组由一个空行分隔: 3.2.1 所有的静态导入独立成组 3.2.2 com.google imports(仅当这个源文件是在com.google包下) 3.2.3 第三方的包。每个顶级包为一组,字典序。例如:android, com, junit, org, sun 3.2.4 java imports 3.2.5 javax imports 4当一个类有多个构造函数,或是多个同名方法,这些函数/方法应该按顺序出现在一起,中间不要放进其它函数/方法。 5 类成员顺序(按首字母排序或使用率,自己觉得) 换行 1. 1.1左大括号前不换行,1.2左大括号后换行,1.3右大括号前换行,1.4如果右大括号是一个语句、函数体或类的终止,则右大括号后换行; 否则不换行。例如,如果右大括号后面是else或逗号,则不换行。 2。一个空的块状结构里什么也不包含,大括号可以简洁地写成{},不需要换行。例外:如果它是一个多块语句的一部分(if/else 或 try/catch/finally) ,即使大括号内没内容,右大括号也要换行。 3.列限制:80或100 4.1如果在非赋值运算符处断开,那么在该符号前断开(比如+,它将位于下一行)。注意:这一点与Google其它语言的编程风格不同(如C++和JavaScript)。 这条规则也适用于以下“类运算符”符号:点分隔符(.),类型界限中的&(<T extends Foo & Bar>),catch块中的管道符号(catch (FooException | BarException e)。4.2如果在赋值运算符处断开,通常的做法是在该符号后断开(比如=,它与前面的内容留在同一行)。这条规则也适用于foreach语句中的分号。4.3方法名或构造函数名与左括号留在同一行。4.4逗号(,)与其前面的内容留在同一行。 5两个连续行使用相同的缩进当且仅当它们开始于同级语法元素。 垂直空白:用于字段的空行主要用来对字段或语句进行逻辑分组。类内的第一个成员前或最后一个成员后的空行是可选的(既不鼓励也不反对这样做,视个人喜好而定)。 水平空白:1.分隔任何保留字与紧随其后的左括号(()(如if, for catch等)。2.分隔任何保留字与其前面的右大括号(})(如else, catch)。3.在任何左大括号前({),两个例外:@SomeAnnotation({a, b})(不使用空格)。String[][] x = foo;(大括号间没有空格,见下面的Note)。4.在任何二元或三元运算符的两侧。这也适用于以下“类运算符”符号:类型界限中的&(<T extends Foo & Bar>)。catch块中的管道符号(catch (FooException | BarException e)。foreach语句中的分号。5在, : ;及右括号())后6如果在一条语句后做注释,则双斜杠(//)两边都要空格7类型和变量之间:List list。8数组初始化中,大括号内的空格是可选的,即new int[] {5, 6}和new int[] { 5, 6 }都是可以的。9.用小括号来限定组 1制表符不用于缩进。2.对于具有特殊转义序列的任何字符(\b, \t, \n, \f, \r, \“, \‘及\),我们使用它的转义序列,而不是相应的八进制(比如\012)或Unicode(比如\u000a)转义。3.对于剩余的非ASCII字符,是使用实际的Unicode字符(比如∞),还是使用等价的Unicode转义符(比如\u221e),取决于哪个能让代码更易于阅读和理解。 注解: 单个的注解可以和签名的第一行出现在同一行:@Override public int hashCode() { ... } 注解紧跟在文档块后面,应用于类、方法和构造函数,一个注解独占一行。这些换行不属于自动换行(第4.5节,自动换行),因此缩进级别不变。例如: @Override @Nullable public String getNameIfPresent() { ... } 应用于字段的注解紧随文档块出现,应用于字段的多个注解允许与字段出现在同一行。例如: @Partial @Mock DataLoader loader; 命名规则: 在Google其它编程语言风格中使用的特殊前缀或后缀,如name_, mName, s_name和kName,在Java编程风格中都不再使用。 包名全部小写,不使用下划线连接符。 类名通常是名词或名词短语,接口名称有时可能是形容词或形容词短语。测试类的命名以它要测试的类的名称开始,以Test结束。 方法名通常是动词或动词短语,下划线可能出现在JUnit测试方法名称中用以分隔名称的逻辑组件 常量名命名模式为CONSTANT_CASE,全部字母大写,用下划线分隔单词。 每个单词的第一个字母都大写,来得到大驼峰式命名。 除了第一个单词,每个单词的第一个字母都大写,来得到小驼峰式命名。
相关文章推荐
- C#泛型详解
- 《第一行代码》读书笔记(一)----活动
- python中类的定义
- php数字操作,高精度函数,保留计算结果小数位
- 面向对象编程其实很简单——Python 面向对象(初级篇) 推荐
- C语言undefined behaviour未定义行为
- 有关java的一些类型转换
- Java 静态初始化块
- Java笔记学习总结(二)
- Effective C++——条款8(第2章)
- 在Raspberry Pi 2/B+上安装Python和OpenCV
- java 实现注册时发送激活邮件+激活
- 编程用到的windows系统目录变量简写
- Java笔记学习总结(一)
- C++ string学习
- 关于C++的模板偏特化和萃取编程技法
- php的date函数
- 必须知道的八大种排序算法【java实现】(二) 选择排序,插入排序,希尔算法【详解】
- POJ C++程序设计 编程题#3 编程作业—多态与虚函数
- 收集的java一些资料