导航:
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
阿里规约PDF:
目录
一、编码和换行符
规范:代码的编码统一使用UTF-8,换行符使用 Unix 格式,不要使用 Windows 格式。
换行符:
- Unix格式:在Unix、Linux以及类Unix操作系统中,使用换行符
\n
来表示新行,这是常用的行结束符。- Windows格式:在Windows操作系统中,通常使用回车符和换行符
\r\n
(CR-LF,Carriage Return-Line Feed)来表示新行。IDEA设置编码为UTF-8:
二、空格规范
2.1 保留字
规范: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。
2.2 二目、三目运算符
规范:任何二目、三目运算符的左右两边需要加一个空格。
正例(添加空格):
int result = a + b; boolean condition = (x > y) ? true : false;
在正例中,二目运算符和三目运算符的左右两边都有一个空格,这是一种常见的代码风格。
反例(不添加空格):
int result = a+b; boolean condition=(x>y)?true:false;
java中常见的二目、三目运算符:
- 二目运算符:+、-、*、/、%、=、==、>=、&&
- 三目运算符:?:
2.3 缩进
规范:采用 4 个空格缩进。可以使用tab快捷键直接四个空格,禁止直接使用“tab”字符 。
IDEA 设置 tab 为 4 个空格时,请勿勾选 Use tab character;而在 eclipse 中,必须勾选 insert spaces for tabs。
2.4 注释
规范:注释双斜线后紧跟一个空格。
// 正例: 这是示例注释,请注意在双斜线之后有一个空格 String param = new String(); //反例: 这是示例注释,请注意在双斜线之后没空格 String param = new String();
2.5 强制转换
规范:强制转换时,右括号后无空格。
// 正例: long first = 1000000000000L; int second = (int)first + 2; // 反例: long first = 1000000000000L; int second = (int) first + 2;
2.6 方法参数
规范:方法参数逗号后加一个空格。
// 正例:下例中实参的 args1,后边必须要有一个空格。 method(args1, args2, args3); // 反例:下例中实参的 args1,后边没空格。 method(args1,args2,args3); method(args1 ,args2 ,args3);
三、行数、字符数
3.1 单行字符数
规范:单行字符数不超过120个,超过时需要换行。
换行规则:
- 第2/3/4/..行相对第一行缩进 4 个空格。
- 运算符随下文一起换行。例如a + b,应该换行成a\n + b,而不是a + \nb
- 点符号与下文一起换行。例如dog.eat(),应该换行成dog\n.eat(),而不是dog.\neat()
- 方法的多个参数换行时,逗号不与下文一起换行。例如sum (1,2,3),应该换行成sum (1,2,\n3),而不是sum (1,2\n,3)
- 在括号前不换行。例如fun (a),应该换行成\nfun (a),而不是fun \n(a)
// 正例: 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);
3.2 方法行数
规范:单个方法的总行数不超过 80 行。
除注释之外的方法签名、左右大括号、方法内代码、空行、回车及任何不可见字符的总行数不超过80 行。
四、括号
4.1 大括号换行规则
规范:大括号内为空时无需换行。
// 正例 int number = 10; // 大括号内为空,则不换行 if (number > 0) {} // 反例 int number = 10; if (number > 0) { }else{ }
规范:大括号内非空时:
- 左大括号:前不换行,后换行
- 右大括号:前换行,右换行(有else时不换行)
// 正例 int number = 10; if (number > 0) { System.out.println("这个数字是正数"); } else if(number < -3){ System.out.println("这个数字不是正数"); } else{} System.out.println("...");
3.2 小括号规则
规范:小括号内侧不隔空格,外侧隔单空格。
// 正例:小括号内侧不隔空格,外侧隔单空格。 if (a == b) // 反例: // 小括号外侧没隔单空格。 if(a == b) // 小括号内侧隔了空格 if ( a == b )