一 命名规范
1.包的命名
a 小写单词组成
b 加上惟一的前缀。一般采用自己在互联网上的域名作为自己程序包的惟一前缀。
c 格式 “com.公司名.项目名.模块名....”
e.g:net.frontfree.javagroup
附:
indi:个体项目,指个人发起,但非自己独自完成的项目,可公开或私有项目,copyright主要属于发起者。
包名为“indi.发起者名.项目名.模块名.……”。
pers :
个人项目,指个人发起,独自完成,可分享的项目,copyright主要属于个人。
包名为“pers.个人名.项目名.模块名.……”。
priv :
私有项目,指个人发起,独自完成,非公开的私人使用的项目,copyright属于个人。
包名为“priv.个人名.项目名.模块名.……”。
team :
团队项目,指由团队发起,并由该团队开发的项目,copyright属于该团队所有。
包名为“team.团队名.项目名.模块名.……”。
com :
公司项目,copyright由项目发起的公司所有。
包名为“com.公司名.项目名.模块名.……”。
2.类的命名
a 大写字母开头,一个单词中的其他字母均为小写。
b 将每个单词的首字母均用大写,例如TestPage。
c 包含单词缩写,则建议将这个词的每个字母均用大写,如:XMLExample。
d 类名尽量选择名词。
3.方法的命名
a 以小写字母开头,后面的单词则建议用大写字母开头。驼峰式。
e.g: sendMessge()。
4.常量的命名
a 都使用大写字母,并且指出该常量完整含义。
b 多个单词用下划线来分割。
e.g:MAX_VALUE。
5.参数的命名
a 参数的命名规范和方法的命名规范相同,参数的命名尽可能明确。
6.Javadoc注释
Java除了可以采用常见的注释方式之外,Java语言规范还定义了一种特殊的注释,也就是通常所说的Javadoc注释,它是用来记录代码中的API的。Javadoc注释是一种多行注释,以/**开头,而以*/结束,注释可以包含一些HTML标记符和专门的关键词。使用Javadoc注释的好处是编写的注释可以被自动转化为在线文档,省去了单独编写程序文档的麻烦。
例如:
/** |
a.在每个程序的最开始部分,一般都用Javadoc注释进行程序的总体描述以及版权信息。b.在主程序中可以为每个类、接口、方法、变量添加Javadoc注释,每个注释的开头部分先用一句话概括该类、接口、方法、变量所完成的功能,这句话应单独占据一行以突出其概括作用,在这句话后面可以跟随更加详细的描述段落。
c.在描述性段落之后还可以跟随一些以Javadoc注释标签开头的特殊段落,例如上面例子中的@auther和@version,这些段落将在生成的文档中以特定方式显示。
e.g:
数 据 类 型 | 中 文 含 义 | 作 用 域 | 你 的 命 名 |
Int | 序列号 | 全局范围 | globalID |
(类) | 用户账单 | (类) | UserReckoning |
String | 用户名称 | 类成员 | userName |
Float | 当月收入 | 类成员 | currentMonHarvest |
Static final | 最大金额 | 类成员 | MAX_MONEY |
Double | 罚款 | 局部变量 | smartMoney |
(包) | 用户 | (包) | user |
7 集合命名
数组或者容器推荐命名方式为名词+s的方式,例如:
List<Person> persons = getPerson();
for(Person person : persons){
dosomeworks;
}
8 泛型命名
a.应该尽量简明扼要(最好是一个字母),以利于与普通的class或interface区分
Container中的Element应该用E表示;Map里的key用K表示,value用V;Type用T表示;异常用X表示
b.如果需要接收多个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;
}
8.逻辑变量:避免用flag来命名状态变量,用is来命名逻辑变量。
if(isClosed){
dosomeworks;
return;
}
a.当要区别接口和实现类的时候,可以在类的后面加上“Impl”。
interface Container class ContainerImpl |
b.Exception类最好能用“Exception”做为类命名的结尾
DataNotFoundException InvalidArgumentException |
c.抽象类最好能用“Abstract”做为类命名的开头
AbstractBeanDefinition AbstractBeanFactory |
d.Test类最好能用“Test”做为类命名的结尾
ContainerTest |
二 编码风格
1.提倡应用常量取代数字、固定字符串。
2.索引变量:i、j、k等只作为小型循环的循环索引变量。
3.数组
a. int[] arr = new int[10]; 一前一后
b.尽量指定大小避免浪费空间
4.除非花括号中为空,不然任何情况下不能省略花括号,并且花括号必须换行
5.类定义顺序
1) 常量
2) 成员变量
3) 构造函数
4) 成员函数
5) get和set方法
各个部分之间留出一个空行。
6. 中间打空格
括号的前,后一个字符不需要空格,例如:Person p = new Person(“Jack”, 17);
7.写无参构造函数
8.尽量拆分成简单易懂的小方法,当有多个异常时尽量分开写。
9 不要使用io.*的形式
10 异常捕获后记得加finally关闭文件
参考网址:
http://www.cnblogs.com/coolhwm/archive/2012/03/22/2411811.html
http://blog.csdn.net/changemyself/article/details/22160361