Java编码规范

下面主要从四个方面讲述Java的编码规范:

一、排版

1、相互独立的程序块直接,应该加空行。

2、较长的语句(>80字符)应该换行,并适当缩进,保证可读性。长表达式要在低优先级操作符处划分新行,操作符放在新行之首。

3、一行只声明一个变量,一条语句。

4、if、for、while、do while语句,哪怕只有一条语句,也必须使用{}。

5、类属性和类方法不要交叉放置,不同存取范围的属性或者方法也尽量不要交叉放置。

6、修饰词按照指定顺序书写:[访问权限][static][final]

7、类内部的代码布局顺序:类属性、构造方法、方法、main方法

8、分枝格式、循环格式、异常处理格式,注意{}的位置。

 

二、注释

1、类和接口的注释放在class或者interface关键字之前,import关键字之后,使用“/** */”注释方式。

格式举例(根据各公司具体要求有所不同)

/**

 * <一句话功能简述>

 * <功能详细描述>

 * @author [作者](必须)

 * @see [相关类/方法](可选)

 * @since [产品/模块版本](必须)

 * @deprecated (可选)

 */

 

2、类属性的注释放在属性前面

格式:

/**

 * 注释内容

 */

private String userName;

 

3、公共(public)和保护(protected)方法注释内容:列出方法的一句话功能简述、功能详细描述、输入参数、输出参数、返回值、异常等。

格式示例(根据各公司具体要求有所不同):

/**

 * <一句话功能简述>

 * <功能详细描述>

 * @param [参数1] [参数1说明]

 * @param [参数2] [参数2说明]

 * @return [返回类型说明]

 * @exception/throws [异常类型][异常说明]

 * @see [类、类#方法、类#成员]

 * @since [起始版本]

 * @deprecated

 */

注意:异常注释用@exception或@throws表示,在JavaDoc中两者等价,但推荐用@exception标注Runtime异常,用throws标注非Runtime异常。

异常的注释必须说明该异常的含义及什么条件下抛出该异常。

 

4、代码注释使用 // 进行,与其描述的代码相近,对代码的注释应放在其上方,并与其上面的代码用空行隔开,注释与所描述内容进行同样的缩进。

 

5、注释的其他规则与建议

1)修改代码时修改相应的注释,以保证注释和代码的一致性,不再有用的注释要删除。

2)注释的内容要清楚、明了,含义准确,防止注释二义性。

3)避免在注释中使用缩写,特别是不常用缩写。

4)对重写父类的方法必须进行@Override声明。

5)一些复杂的代码一定进行说明。

 

三、命名规则

1、类名和接口名字使用意义完整的英文描述,增强可读性。每个英文单词的首字母使用大写,其余字母使用小写。

例如:ConnectionManager、UserDAO、Customer

 

2、属性名使用意义完整的英文描述,第一个单词的字母使用小写,剩余单词的首字母大写、其余字母小写。属性名不能与方法名相同,集合意义的属性名使用复数形式。

例如:private String customerName; private List<Customer> customers;

 

3、方法名的命名规则基本与属性名相同,不过方法名一般以动词开头。

例如:private void initFrame(){}

 

4、常量名使用全大写的英文描述,英文单词之间用下划线隔开,并使用final或者static final修饰。

例如:public final int MAX_VALUE = 1000;

 

四、性能和可靠性

1、使用System.arrayCopy方法进行数组拷贝,提高性能。

int[] a = {3,5,6,12,45};

int[] b = {23,12,4,53,2};

System.arraycopy(a, 1, b, 2, 2);

for(int i=0; i < b.length; i++){

System.out.print(b[i]+" "); //23 12 5 6 2

}

 

2、把集合转换成数组时,使用Collection中的toArray方法,不要使用循环。

List<String> strList = new ArrayList<String>(15);

String[] strArr = new String[strList.size()];

String[] strs = strList.toArray(strArr);

 

3、大量字符串的相加等于处理应该使用StringBuffer。“大量”一般指5次“+=”以上或者在循环中进行字符串“+=”操作。

例如:

String[] strs = {"aa","bb","cc","dd","ee","ff","gg"};

String str = "";

for(int i = 0; i < strs.length; i++){

str += strs[i];

}

应改为

String[] strs = {"aa","bb","cc","dd","ee","ff","gg"};

StringBuffer sbf = new StringBuffer();

for(String str : strs){

sbf.append(str);

}

 

4、尽量使用JDK自带的API类库中的类和方法,不要自己写类似功能的类。

API在可靠性、性能方面一般有更好的表现,必须熟练掌握,特别是算法方面的。

 

5、IO操作流使用有Buffer功能的类,如BufferedReader以及BufferedWriter,拥有更好的性能,没有Buffer的IO流频繁IO操作,效率相对低。

FileReader fr = new FileReader("D://test.txt");

BufferedReader br = new BufferedReader(fr);

String line = br.readLine();

while(line != null){

System.out.println(line);

line = br.readLine();

}

 

6、不要在循环内执行不必要的重复操作,可在循环外调用一次的,就避免在循环内进行不必要的反复调用。

例如:

for(int i = 0; i < result.size(); i++){

//...

}

应写成:

int size= result.size(); 

for(int i = 0; i < size; i++){

//...

}

 

7、除非必要,否则不要频繁在循环内创建对象,以免影响效率。

 

8、除非必要,否则尽量把循环次数多的循环放在内层,减少跨切循环的次数。循环次数不要超过三层。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值