1.[强制] 大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则:
- 左大括号前不换行。
- 左大括号后换行。
- 右大括号前换行。
- 右大括号后还有else等代码则不换行;表示终止的右大括号后必须换行。
老四附言:
其实这种约定还是很标准的,很多人学过一些C语言或者C++之类的语言,他们经常习惯性的忽略大括号的使用,同时又不注意缩进,导致代码阅读感受极差。。。
2.[强制] 左小括号和字符之间不出现空格;同样,右小括号和字符之间也不出现空格。详见第5条下方正例提示。
反例:
if(空格a == b空格)
老四附言:
空格也不是说遇到两个不同运算符就要使用空格,像括号”()”代表的是包含与归属,所以括号里面的两边加上空格反而倒显得代码不紧凑。
3.[强制] if/for/while/switch/do等保留字与括号之间都必须加空格。
老四附言:
这个不用多说了,其实这也是Java代码格式的规定,但没有严格要求,而作为程序员/媛的我们还是要保持良好的编码风格的。
4.[强制] 任何二目、三目运算符的左右两边都需要加一个空格。
说明: 运算符包括赋值运算符=、逻辑运算符&&、加减乘除符号等。
老四附言:
之前在文章《Java十道由浅入深的笔面试题第一期(上) 详细解析》中第一题的浅析中也复习了一下Java运算符的一些基础知识,各位看官可以前去参考一下。
5.[强制] 采用4个空格缩进,禁止使用tab字符。
说明: 如果使用tab缩进,必须设置1个tab为4个空格。IDEA设置tab为4个空格时,请勿勾选Use tab character;而在eclipse中,必须勾选insert spaces for tabs。
正例: (涉及1-5点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public static void main(String[] args) { // 缩进4个空格 String say = "hello"; // 运算符的左右必须有一个空格 int flag = 0; // 关键词if与括号之间必须有一个空格,括号内的if与左括号,0与右括号不需要空格 if (flag == 0) { System.out.println(say); } // 左大括号前加空格且不换行;左大括号后换行 if (flag == 1) { System.out.println("world"); // 右大括号前换行,右大括号后有else,不用换行 } else { System.out.println("ok"); // 在右大括号后直接结束,则必须换行 } } |
老四附言:
eclipse设置tap键为4个空格路径分别是: General->Editors->Text Editors,如下图所示:
intellij idea设置tap键为4个空格路径分别是file->settings->editor->code style->java,如下图所示:
另外,设置好idea以后可以使用ctrl+alt+l整理代码格式,如果不喜欢或者懒得整理格式,也可以使用edit->Convert Indents->To Spaces全局将代码转换为空格,免去自己自动格式整理打乱代码风格等。
6.[强制] 注释的双斜线与注释内容之间有且仅有一个空格。
正例:
1 2 |
// 这是示例注释,请注意在双斜线之后有一个空格 String ygb = new String(); |
老四附言:
(⊙o⊙)…双斜线的注释加上空格便于修改注释和阅读,如果双斜线和注释书写在一起有些时候难免就会破坏双斜线或者导致代码格式化行不对齐。
7.[强制] 单行字符数限制不超过120个,超出需要换行,换行时遵循如下原则:
- 第二行相对第一行缩进4个空格,从第三行开始,不再继续缩进,参考示例。
- 运算符与下文一起换行。
- 方法调用的点符号与下文一起换行。
- 方法调用时,多个参数,需要换行时,在逗号后进行。
- 在括号前不要换行,见反例。
正例:
1 2 3 4 5 6 |
StringBuffer sb = new StringBuffer(); // 超过120个字符的情况下,换行缩进4个空格,点号和方法名称一起换行 sb.append("zi").append("xin")... .append("huang")... .append("huang")... .append("huang"); |
反例:
1 2 3 4 5 6 7 |
StringBuffer sb = new StringBuffer(); // 超过120个字符的情况下,不要在括号前换行 sb.append("zi").append("xin")...append ("huang"); // 参数很多的方法调用可能超过120个字符.不要在逗号前换行 method(args1, args2, args3, ... , argsX); |
老四附言:
想必看反例也能看得出来,如果在括号前或者逗号前换行是的代码阅读体验非常受影响。
8.[强制] 方法参数在定义和传入时,多个参数逗号后边必须加空格。
正例:
下例中实参的”a”,后边必须要有一个空格。
1 |
method("a", "b", "c"); |
老四附言:
这个算是很早的规则了,要不然参数挨得那么紧凑,既不美观也影响修改的时候鼠标指针定位不准确,造成无修改,然后找错误一找找半天~~~~
9.[强制] IDE的text file encoding设置为UTF-8;IDE中文件的换行符使用Unix格式,不要使用Windows格式。
老四附言:
eclipse设置工作空间编码全局为UTF-8的方式:
换行使用Unix格式主要是为了适配linux,没几个公司或者个人的Java项目是部署在windows上面的。]
10.[推荐] 没有必要增加若干空格来使某一行的字符与上一行对应位置的字符对齐。
正例:
1 2 3 4 |
int a = 3; long b = 4L; float c = 5F; StringBuffer sb = new StringBuffer(); |
说明:增加sb这个变量,如果需要对齐,则给a、b、c都要增加几个空格,在变量比较多的情况下,是非常累赘的事情。
老四附言:
不仅是累赘,其实即使是对齐了也不好看,保证缩进左对齐就比较舒服了。
11.[推荐] 不同逻辑、不同语义、不同业务的代码之间插入一个空行分隔开来以提升可读性。
说明:没有必要插入多个空行进行隔开。
老四附言:
例如一个方法中可以需要执行多个业务块的业务逻辑,此要求多半是这样的约定,这样能保证每行分隔开来的代码块负责相应的业务处理,代码阅读体验升高。
更博不易,如果觉得文章对你有帮助并且有能力的老铁烦请赞助盒烟钱,点我去赞助。或者扫描文章下面的微信/支付宝二维码打赏任意金额,老四这里抱拳了。赞助时请备注姓名或者昵称,因为您的署名会出现在赞赏列表页面,您的赞赏钱财也会被用于小站的服务器运维上面,再次抱拳。