代码规范

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,全部字母大写,用下划线分隔单词。
    每个单词的第一个字母都大写,来得到大驼峰式命名。
    除了第一个单词,每个单词的第一个字母都大写,来得到小驼峰式命名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值