导航:
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/黑马旅游/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码
阿里规约PDF:
阿里巴巴开发手册.pdf
目录
一、编码和换行符
二、空格规范
2.1 保留字
2.2 二目、三目运算符
2.3 缩进
2.4 注释
2.5 强制转换
2.6 方法参数
三、行数、字符数
3.1 单行字符数
3.2 方法行数
四、括号
4.1 大括号换行规则
3.2 小括号规则
规范:代码的编码统一使用UTF-8,换行符使用 Unix 格式,不要使用 Windows 格式。
换行符:
Unix格式:在Unix、Linux以及类Unix操作系统中,使用换行符
\n
来表示新行,这是常用的行结束符。Windows格式:在Windows操作系统中,通常使用回车符和换行符
\r\n
(CR-LF,Carriage Return-Line Feed)来表示新行。
IDEA设置编码为UTF-8:
规范:if/for/while/switch/do 等保留字与括号之间都必须加空格。
正例(添加空格):
if (condition) {
// 代码逻辑
}
for (int i = 0; i < 10; i++) {
// 循环体
}
while (condition) {
// 循环体
}
switch (value) {
case 1:
// 情况1的代码
break;
default:
// 默认情况的代码
}
反例(不添加空格):
if(condition) {
// 代码逻辑
}
for(int i = 0; i < 10; i++) {
// 循环体
}
while(condition) {
// 循环体
}
switch(value) {
case 1:
// 情况1的代码
break;
default:
// 默认情况的代码
}
Java常见保留字:
- 条件语句关键字:如if、else、switch、case、default。
- 循环控制关键字:如for、while、do、break、continue。
- 访问修饰符关键字:如public、private、protected。
- 数据类型关键字:如int、double、char、boolean。
- 类和对象关键字:如class、new、extends、implements。
- 异常处理关键字:如try、catch、throw、throws、finally。
规范:任何二目、三目运算符的左右两边需要加一个空格。
正例(添加空格):
int result = a + b;
boolean condition = (x > y) ? true : false;
在正例中,二目运算符和三目运算符的左右两边都有一个空格,这是一种常见的代码风格。
反例(不添加空格):
int result = a+b;
boolean condition=(x>y)?true:false;
java中常见的二目、三目运算符:
- 二目运算符:+、-、*、/、%、=、==、>=、&&
- 三目运算符:?:
规范:采用 4 个空格缩进。可以使用tab快捷键直接四个空格,禁止直接使用“tab”字符 。
IDEA 设置 tab 为 4 个空格时,请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs。
规范:注释双斜线后紧跟一个空格。
// 正例: 这是示例注释,请注意在双斜线之后有一个空格
String param = new String();
//反例: 这是示例注释,请注意在双斜线之后没空格
String param = new String();
规范:强制转换时,右括号后无空格。
// 正例:
long first = 1000000000000L;
int second = (int)first + 2;
// 反例:
long first = 1000000000000L;
int second = (int) first + 2;
规范:方法参数逗号后加一个空格。
// 正例:下例中实参的 args1,后边必须要有一个空格。
method(args1, args2, args3);
// 反例:下例中实参的 args1,后边没空格。
method(args1,args2,args3);
method(args1 ,args2 ,args3);
规范:单行字符数不超过120个,超过时需要换行。
换行规则:
// 正例:
StringBuilder sb = new StringBuilder();
// 超过 120 个字符的情况下,换行缩进 4 个空格,点号和方法名称一起换行
sb.append("Jack").append("Ma")...
.append("alibaba")...
.append("alibaba")...
.append("alibaba");
// 反例:
StringBuilder sb = new StringBuilder();
// 超过 120 个字符的情况下,不要在括号前换行
sb.append("Jack").append("Ma")...append
("alibaba");
// 参数很多的方法调用可能超过 120 个字符,不要在逗号前换行
method(args1, args2, args3, ...
, argsX);
规范:单个方法的总行数不超过 80 行。
除注释之外的方法签名、左右大括号、方法内代码、空行、回车及任何不可见字符的总行数不超过80 行。
规范:大括号内为空时无需换行。
// 正例
int number = 10;
// 大括号内为空,则不换行
if (number > 0) {}
// 反例
int number = 10;
if (number > 0)
{
}else{
}
规范:大括号内非空时:
// 正例
int number = 10;
if (number > 0) {
System.out.println("这个数字是正数");
} else if(number < -3){
System.out.println("这个数字不是正数");
} else{}
System.out.println("...");
规范:小括号内侧不隔空格,外侧隔单空格。
// 正例:小括号内侧不隔空格,外侧隔单空格。
if (a == b)
// 反例:
// 小括号外侧没隔单空格。
if(a == b)
// 小括号内侧隔了空格
if ( a == b )