JAVA代码规范笔记(上)
本文为《code conventions-150003》(JAVA代码规范)笔记。
文件组织
1、超过2000行代码的源文件将会比较难以阅读,应该避免。
2、每个Java源文件都包含单一的公共类或接口。如果私有类和接口与一个公共类有联系,可以把它们与这个公共类放在同一个源文件中。公共类必须是文件中的第一个类或接口。
3、JAVA源文件内容应该遵循以下顺序:
- 开头注释
- 包声明和引入语句,如:
import java.applet.Applet; import java.awt.*; import java.net.*;
- 类和接口的声明
/* *Classname * *Version info * *Copyright notice */
package java.awt; import java.awt.peer.CanvasPeer;
6、类和接口声明
| 类/接口声明的各部分 | 备注 | |
| 1 | 类/接口的文档注释 | 该注释所需包含的信息可以参见下面的文档注释 |
| 2 | 类/接口的声明 | |
| 3 | 类/接口的实现注释(/*...*/),如果有必要的话 | 该注释应该包含所有与类或接口有关的信息,而这些信息又不适合作文档注释。 |
| 4 | 类(静态)变量 | 首先是类的公有(public)变量,然后是保护(protected)变量,之后是私有(private)变量。 |
| 5 | 实例变量 | 首先是公有的(public),接着是保护的(protected),之后是私有的(private)。 |
| 6 | 构造方法 | |
| 7 | 方法 | 这些方法应该按功能,而非作用域或访问权限来分组。例如,一个私有的类方法可以在两个公有的实例方法之间,其目的是为了更利于代码的阅读与理解。 |
7、通常4个空格被作为缩进的一个单位。缩进使用的具体结构(是空格还是制表符)并无指明。一个制表符相当于8个空格(而非4个)。
- 在一个逗号后断开
- 在一个操作符前断开
- 高级别的断开优先于低级别的断开
- 新的一行应该与上一句同一级别表达式的开头处对齐
- 如果以上的规则导致代码混乱,或使代码都堆挤在右边,可以代之以8个空格的缩进。
function(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);
var = function1(longExpression1,
function2(longExpression2,
longExpression3));
下面两个例子是断开算术表达式的例子。第一个更好一点,因为断开处是在括号表达式外面,它是个较高级别的断开。
longName1 = longName2 * (longName3 + longName4 - longName5)
+ 4 * longname6; // PREFER
longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6; // AVOID
下面是两个方法声明的缩进例子。第一个例子是常规情况。而第二个例子,如果使用常规的缩进方式,它会使第二行和第三行的代码太过于偏右,所以以缩进8个空格的方式代替。
//常规缩进
someMethod(int anArg, Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}
//以8个空格来代替,以避免缩进太严重
private static synchronized horkingLongMethodName(int anArg,
Object anotherArg, String yetAnotherArg,
Object andStillAnother) {
...
}
if语句的换行通常应该使用8个空格的规则,因为常规的缩进(使用4个空格)会使语句体比较难以阅读。例如:
//请勿使用这种缩进
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) { //BAD WRAPS
doSomethingAboutIt(); //MAKE THIS LINE EASY TO MISS
}
//使用这种缩进来代替
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}
//或这种缩进
if ((condition1 && condition2) || (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
}
下面是三种格式化三目表达式的可行方法。
alpha = (aLongBooleanExpression) ? beta : gamma;
alpha = (aLongBooleanExpression) ? beta
: gamma;
alpha = (aLongBooleanExpression)
? beta
: gamma;
注释
注释通常用来给出代码的概述,和提供从代码本身不易得到的附加信息。注释应该只包含与阅读理解程序相关的信息。例如,相应的包如何被创建,或者它位于哪个目录,这样的信息就不应该包含在注释中。
/* * Here is a block comment. */
块注释可以以 /*-开头,这样indent(1)就可以识别到它是一个块注释的开头,而不会去重格式化它。
/* * Here is a block comment with some very special * formatting that I want indent(1) to ignore. * * one * two * three */
注意:如果你不使用indent(1),你就不必要在你的代码中使用/*-,或为其他人可能对你的代码运行indent(1)作出其他的让步。
if (condition) {
/* Handle the condition. */
...
}
14、尾端注释
if (a == 2) {
return TRUE; /* special case */
} else {
return isprime(a); /* works only for odd a */
}
if (foo > 1) {
// Do a double-flip.
...
}
else
return false; // Explain why here.
//if (bar > 1) {
//
// // Do a triple-flip.
// ...
//}
//else
// return false;
16、文档注释
/**
* The Example class provides ...
*/
class Example { ...
JAVA代码规范笔记(上)的更多相关文章
- Alibaba《Java开发手册》之Java代码规范笔记
前言 一种工具被发明出来,那么针对这种工具的各种使用规则.条条框框就随之而来.无规矩不成方圆,无制度则无国家,无风格不成代码!治国有国法.排兵布阵有章法.那么写代码也有它界内通用的不成俗的约定.最近刚 ...
- JAVA代码规范笔记(下)
声明 17.推荐一行一个声明,因为这样有利于写注释.换句话说,下面的声明方法中, int level; // indentation level int size; // size of table ...
- Java 代码规范,你应该知道的一些工具和用法
从事编程这个行业,你一定被别人说过或者说过别人这句话:代码要规范!求职面试时也能从 JD 上看到这个要求:要有良好的编程习惯.其实都是在讲代码规范(Code Style)这件事情. 每个人都有自己的编 ...
- Java 代码规范,你应该知道的一些工具和用法(转)
转自:http://yifeng.studio/2017/06/30/coding-with-code-style/ Java 代码规范,你应该知道的一些工具和用法 2017-06-30 从事编程这个 ...
- 转!!Java代码规范、格式化和checkstyle检查配置文档
为便于规范各位开发人员代码.提高代码质量,研发中心需要启动代码评审机制.为了加快代码评审的速度,减少不必要的时间,可以加入一些代码评审的静态检查工具,另外需要为研发中心配置统一的编码模板和代码格式化模 ...
- Java代码规范
Java代码规范 本Java代码规范以SUN的标准Java代码规范为基础,为适应我们公司的实际需要,可能会做一些修改.本文档中没有说明的地方,请参看SUN Java标准代码规范.如果两边有冲突,以SU ...
- Java代码规范、格式化和checkstyle检查配置文档
http://www.blogjava.net/amigoxie/archive/2014/05/31/414287.html 文件下载: http://files.cnblogs.com/files ...
- 阿里官方Java代码规范标准《阿里巴巴Java开发手册 终极版 v1.3.0》
终极版 v1.3.0 2017年开春之际,阿里诚意献上重磅大礼:<阿里巴巴Java开发手册>,首次公开阿里官方Java代码规范标准.这套Java统一规范标准将有助于提高行业编码规范化水平, ...
- MyEclipse中阿里JAVA代码规范插件(P3C)的安装及使用
JAVA代码规范插件(P3C)是阿里巴巴2017年10月14日在杭州云栖大会上首发的,使之前的阿里巴巴JAVA开发手册正式以插件形式公开走向业界.插件的相关信息及安装包都可以在GitHub(https ...
随机推荐
- 51nod 1035:最长的循环节
1035 最长的循环节 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求< ...
- Tomcat常用参数的配置
1.修改端口号 Tomcat端口配置在server.xml文件的Connector标签中,默认为8080,可根据实际情况修改. 修改端口号 2.解决URL中文参数乱码 在server.xml文件的Co ...
- 女儿开始bababababa的发声了
女儿八个半月,开始bababababa的发声了,而不是像以前总啊啊啊的.
- AsyncLocal 与 async await
大家来看一张图 先猜猜看为什么会这样 关于async await的原理 建议查看 https://blog.csdn.net/brook_shi/article/details/50803957 这篇 ...
- 各种异常 及异常类和Object类
Day05 异常 Object类 equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较.Object类中的equals方法内部使用的就是==比较运算符. 2. 描述人这个 ...
- Swift 3.0项目迁移的一些记录
刚执行完Convert后报错600+,真是令人奔溃. 之后重新编译,仔细分析后发现其实真实错误远没有那么多.最终实际修改到的错误也就几十个,而且其中某些还是同一种错误. 这个项目是一个供自己使用的浏览 ...
- JSON 封装函数
var eventUtil = { addHandler:function(element,type,handler) { //添加句柄 if(element.addEventListener) { ...
- Bootstrap3 栅格系统-嵌套列
为了使用内置的栅格系统将内容再次嵌套,可以通过添加一个新的 .row 元素和一系列 .col-sm-* 元素到已经存在的 .col-sm-* 元素内.被嵌套的行(row)所包含的列(column)的个 ...
- Android Studio 中设置代码块自动补齐
AS中很多提示键,并不如Eclipse中做的好,需要我们自己去自定义.这里以switch...case为例,讲解一下如何设置代码自动补全. 1.进入settings --> Editor -- ...
- Matlab to OpenCV Mat
convert Matlab matrix to OpenCV Mat. Support CV_32FC3 only currently. The Code int matlab2opencv(cv: ...