首页 理论教育 Java编码规范建议

Java编码规范建议

时间:2023-10-19 理论教育 版权反馈
【摘要】:3.面向对象编程:◇ 所有覆盖的方法都要加上@Override;◇ 不要使用已经被废弃的方法,尤其是老版本JDK中废弃的方法或属性;◇ 尽量使用基本类型,如果使用包装类Integer就不能使用“==”去判断数值相等;◇ 序列化serialVersionUID的值不能够随意修改。JDK 1.8的应用中,可以使用Instant代替Date,LocalDateTime代替Calendar,DateTimeFormatter代替SimpleDateFormatter;◇ 能用无锁数据结构,就不要用锁;能锁代码块,就不要锁整个方法体;能用对象锁,就不要用类锁;◇ Random尽量不要线程共享,虽然线程是安全的。

Java编码规范建议

1.命名规范:

◇ 不要中文拼音和英文混用;

◇ DTO(Data Transfer Object)、DAO(Data Access Object)等领域名词全部大写;

◇ 包名全部小写,尽量不要出现复数

英文单词需要写完整,避免出现缩写语义不清晰,例如将“condition”写成“condi”会给其他开发者造成困扰。

2.变量定义:

◇ long类型数值必须以大写的L结尾;

◇ float类型数值必须以大写的F结尾。

3.面向对象编程:

◇ 所有覆盖的方法都要加上@Override;

◇ 不要使用已经被废弃的方法,尤其是老版本JDK中废弃的方法或属性;

◇ 尽量使用基本类型,如果使用包装类Integer就不能使用“==”去判断数值相等;

序列化serialVersionUID的值不能够随意修改。

4.集合类:

◇ Array.asList是不可变list,若原先Array的值发生修改,list内的值也会被修改;(www.xing528.com)

◇ Map遍历尽量不要使用keySet进行遍历,而应使用Map.Entry<K,V>;

◇ 尽量不要使用list的contains()方法,而应使用set的contains()。

5.多线程

◇ 每个线程需命名,表明其作用;

◇ 禁止使用Executors创建线程池;

◇ SimpleDateFormat线程是不安全的,建议使用lang3-3.4中的DateFormatUtils,或者每次使用时都新建一个SimpleDateFormat对象。JDK 1.8的应用中,可以使用Instant代替Date,LocalDateTime代替Calendar,DateTimeFormatter代替SimpleDateFormatter;

◇ 能用无锁数据结构,就不要用锁;能锁代码块,就不要锁整个方法体;能用对象锁,就不要用类锁;

◇ Random尽量不要线程共享,虽然线程是安全的。可以使用ThreadLocalRandom。

6.控制语句:

◇ 在一个switch块内,每个case要么通过break/return等来终止,要么注释说明程序将继续执行到哪一个case为止;在一个switch块内,都必须包含一个default语句;

◇ 在if/else/for/while/do语句中必须使用大括号,即使只有一行代码;◇ 尽量少用else,减少分支逻辑复杂度,不合适就提前return。

7.其他:

◇ Pattern支持的单例不要在方法体里面定义;

◇ 不能在finally块中使用return,因为finally块中的return返回后方法会结束执行,不会再执行try块中的return语句。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈