Java编程规范整理
分享一份网友整理的编程过程中的命名规范
包命名
包名按照域名的范围从大到小逐步列出,恰好和Internet上的域名命名规则相反。
由一组以“.”连接的标识符构成,通常第一个标识符为符合网络域名的两个或者三个英文小写字母。
People
TestPage
XMLExample
类,接口命名
类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。
People
TestPage
XMLExample
方法名
方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。可以为动词或动词+名词组合。
设置/获取某个值的Method,应该遵循setV/getV规范
返回长度的Method,应该命名为length
测试某个布尔值的Method,应该命名为isV
将对象转换为某个特定类型的Mehod应该命名为toF
getDate();
length();
isReady();
toOracleFormat();
变量名
- 普通变量命名应该采用首字母小写,其他字母首字母大写的方式。
- final static变量的名字应该都大写,并且指出完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词如。
NUM_DAYS_IN_WEEK
MAX_VALU
3. 如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性
context=ctx
message=msg
4. 通过在结尾处放置一个量词,就可创建更加统一的变量
First(一组变量中的第一个)
Last(一组变量中的最后一个)
Next(一组变量中的下一个变量)
Prev(一组变量中的上一个)
Cur(一组变量中的当前变量)
5. 无论什么时候,均提倡应用常量取代数字、固定字符串。也就是说,程序中除0,1以外,尽量不应该出现其他数字。
6. 索引变量:i、j、k等只作为小型循环的循环索引变量。
7. 逻辑变量:避免用flag来命名状态变量,用is来命名逻辑变量。
if(isClosed){
dosomeworks;
return;
}
数组
总是使用以下方式定义数组:
int[] arr = new int[10];
禁止使用C语言的是形式:
禁止
int arr[] = new int[10];
集合
数组或者容器推荐命名方式为名词+s的方式,例如:
List<Person> persons = getPerson();
for(Person person : persons){
dosomeworks;
}
泛型
应该尽量简明扼要(最好是一个字母),以利于与普通的class或interface区分
Container中的Element应该用E表示;Map里的key用K表示,value用V;Type用T表示;异常用X表示
如果需要接收多个Type类型的参数,应该用邻接T的大写字母——例如S——来依次表示,当然也可以用T1, T2这样的方式

public
class HashSet<E> extends AbstractSet<E> {…} public
class HashMap<K, V> extends AbstractMap<K, V> {…} public
class ThreadLocal<T> {…} public
interface Functor<T, X extends Throwable> { T val() throws X; }

推荐的命名
1.当要区别接口和实现类的时候,可以在类的后面加上“Impl”。
|
interface Container class ContainerImpl |
2.Exception类最好能用“Exception”做为类命名的结尾
|
DataNotFoundException InvalidArgumentException |
3.抽象类最好能用“Abstract”做为类命名的开头
|
AbstractBeanDefinition AbstractBeanFactory |
4. Test类最好能用“Test”做为类命名的结尾
|
ContainerTest |
5.简称与缩写(不推荐使用)
|
cp代表colorPoint buf代表buffer off代表offset len代表length |
除非是在循环中,否则一般不推荐使用单个字母作为变量名,不过也有例外,即约定俗成的单个字母
|
b代表byte c代表char d代表double e代表Exception f代表float i, j, k代表整数 l代表long o代表Object s代表String v代表某些类型的特定值 |
代码风格
花括号
花括号统一采用以下格式:
if(bool experssion){
dosomework;
}
除非花括号中为空,不然任何情况下不能省略花括号,并且花括号必须换行,例如:
if(i==0){
return;
}
while(true) {}
以下写法禁止出现:
禁止
if(i != 0) return;
禁止
if(i !=0) {return;}
括号
括号的前,后一个字符不需要空格,例如:
Person p = new Person(“Jack”, 17);
空格
- 逗号之后紧跟一个空格。
Person p = new Person(“Jack”, 16, “China”);
2. 二元操作符前后跟空格。
int i = a + b – c * d;
3. 一元操作符不需要空格,for语句分号后有空格。
for(int i = 0; I < 10; i++){
dosomework;
}
4. 括号前后不需要空格
类
- 类的定义结构按照顺序为:
1) 常量
2) 成员变量
3) 构造函数
4) 成员函数
5) get和set方法
各个部分之间留出一个空行。
例如:

规范类模板:
class Person{
private final static int MAX_AGE = 100; private String firstname = “Jack”; public Person(){}
public Person(String firstname){
this.firstname = firstname;
} public void doExercise(){
dosomeworks;
run();
}
private void run(){
dosomeworks;
} public getFirstname(){
return firstname;
}
public setFirstname(String firstname){
this.firstname = firstname;
}
}

2.构造函数
1) 参数为空的构造函数出现在最上方
2) 有调用关系的构造函数相邻
3) 参数尽量由少到多从上至下排序
3.使用成员变量
在类的方法内引用成员变量了命名冲突以外,不使用this。非特殊情况在类的方法内都不使用get和set方法存取成员变量。
4.方法
有调用关系的方法尽量放在相邻的位置,public和private方法可以交叉放置。
5.get和set方法,所有需要公开的成员变量都要符合良好的javabean规范,提供get和set方法,尽量使用IDE工具自动生成。
Javadoc注释
在每个程序的最开始部分,一般都用Javadoc注释对程序的总体描述以及版权信息,之后在主程序中可以为每个类、接口、方法、字段添加 Javadoc注释,每个注释的开头部分先用一句话概括该类、接口、方法、字段所完成的功能,这句话应单独占据一行以突出其概括作用,在这句话后面可以跟随更加详细的描述段落。在描述性段落之后还可以跟随一些以Javadoc注释标签开头的特殊段落,例如上面例子中的@auther和@version,这些段落将在生成文档中以特定方式显示
参考文档
Java命名规范
http://java.chinaitlab.com/base/834496.html
Java代码规范
http://www.doc88.com/p-733474983375.html
java应用命名规范
http://home.51.com/renjanely/diary/item/10051465.html
【J2SE系列】Java命名规范
http://my.oschina.net/iblike/blog/34100\
开发笔记:Java命名规范
http://blog.donews.com/maverick/archive/2005/10/12/585459.aspx
Java编程规范整理的更多相关文章
- JAVA编程规范(下)
JAVA编程规范(下) 2016-03-27 6. 代码的格式化 6.1 对代码进行格式化时,要达到的目的 1. 通过代码分割成功能块和便于理解的代码段,使代码更容易阅读和理解: 2. ...
- JAVA 编程规范(上)
2016-03-20 J120-CHARLIEPAN JAVA 编程规范(上) 1. 应用范围 本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JA ...
- Java编程规范(一)
最近在看一本有关Java编程规范的书,书中精炼阐述了使用java语言时应该遵循的一些原则.接下来的一段时间我将在这里总结我的学习内容,也希望这一系列文章能够对有需要的人有所帮助. 不考虑任何编码规范的 ...
- Java编程规范(二)
二.格式规范 在上一篇的java编程规范(一)中我们讲述了在Java编码中的一般原则,虽然这些原则并不涉及具体的代码规范,但是这些原则却是我们在Java开发过程中所应该遵循的规范与思想.今天我们将学习 ...
- FangDD Java编程规范
我们采用<Oracle/Sun原生的Java编程规范>和<Google Java编程规范> Google Java编程风格指南 January 20, 2014 作者:Haws ...
- Java编程规范参考
谷歌Java编程规范-原版 谷歌Java编程规范-中文翻译版 阿里巴巴Java编程规范 阿里巴巴Java编程规范-IDEA 插件 阿里巴巴Java编程规范-Eclipse 插件
- 乐字节Java变量与数据类型之一:Java编程规范,关键字与标识符
大家好,我是乐字节的小乐,这次要给大家带来的是Java变量与数据类型.本文是第一集:Java编程规范,关键字与标识符. 一.编程规范 任何地方的名字都需要见名知意: 代码适当缩进 书写过程成对编程 对 ...
- 阿里巴巴Java编程规范考试
阿里巴巴Java编程规范考试 今天在阿里云官网把阿里巴巴Java编程规范认证考试考过了, 写下这篇文章总结一下考试中需要注意的知识点, 主体内容还是要直接看规范: 编程规约 异常日志 单元测试 安全规 ...
- java编程规范大全
JAVA编程规范大全 命名规范 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失.(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性 ...
随机推荐
- apache+php+mysql最新版windows下
卸载以前的Apache 1.控制面板先卸载 2.删除E:\Program Files (x86)\Apache Software Foundation下的apache目录 一.安装apache 1.c ...
- WPF柱状图(支持数据库动态更新)之组件的数据动态化
WPF柱状图(支持数据库动态更新) 在这片文章中我们介绍了如何将柱状图包装成一个组件,将这个组件的属性对外开放和组件的外部属性根内部属性绑定以及非轮询动态更新数据的方式. 非轮询更新数据感觉介绍的不够 ...
- mac 终端中添加tree命令显示文件目录结构
在Ubuntu下,通过 sudo apt-get install tree 可以使用tree命令,显示文件目录列表,如图所示: 在mac OS X系统下怎么使用呢? 在终端输入: cd $home ...
- IP地址基础知识
IP地址基础知识 网络号:用于识别主机所在的网络:主机号:用于识别该网络中的主机. 一 OSI/RM模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 二 TCP/IP模型 数据链路层( ...
- Python中如何写控制台进度条的整理
本文实例讲述了Python显示进度条的方法,是Python程序设计中非常实用的技巧.分享给大家供大家参考.具体方法如下: 首先,进度条和一般的print区别在哪里呢? 答案就是print会输出一个\n ...
- 【转载】NIO服务端序列图
步骤一:打开ServerSocketChannel,用于监听客户端的连接,它是所有客户端连接的父管道,代码示例如下: ServerSocketChannel acceptorSvr = ServerS ...
- Asp.NET获取文件及其路径
[相对路径] Request.ApplicationPath /src Path.GetDirectoryName(HttpContext.Current.Request.RawUrl ) //s ...
- js如何打印object对象
js调试中经常会碰到输出的内容是对象而无法打印的时候,光靠alert只能打印出object标示,却不能打印出来里面的内容,甚是不方便,于是各方面整理总结了如下一个函数,能够将数组或者对象这类的结果一一 ...
- Object-C日志记录
在Object-C中,将日志信息输出到控制台是非常简单的.实际上NSLog()函数很像C语言里面的printf()函数,出了要用一个%@符号代表一个对象. NSLog(@"The curre ...
- 尚学堂马士兵Oracle教程笔记
检查Oracle安装 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba 然后,解除对scott用户的锁 alter user scott account ...