企业级java开发中java程序员要知道的编程规范

本文将总结我2021年1月,第一次实习过程中,在项目开发遇到的编程规范问题或者平时未有注意的规范问题,以及list出一些编程技巧等等,不定期更新,觉得有用建议收藏,欢迎品论区补充,我将一起整理到文章中,共勉!

1. 把字符串常量放在前面

“string_constant”.equals(str),避免str出现空指针异常,不过企业中项目都会有工具类可以直接调用,也有引入的第三方包,常见如hutool工具包等等。

2.比较两个BigDecimal对象时,compareTo方法只比较值是否相等,返回值是int类型;equals方法对值与精度都进行比较,都相等返回true,否则返回false。

3.涉及金额等精确浮点计算的数据类型必须用BigDecimal,float、double类型会丢失精度禁止使用。

4.不能使用过时的类或方法。接口过时必须加@Deprecated注解,并清晰地说明采用的新接口或者新服务是什么。

5.所有的相同类型的包装类对象之间值的比较,必须使用equals方法比较。基本类型与其包装类对象比较,要么把包装类转为基本类型使用==比较,要么把基本类型转为包装类型对象后使用equals方法比较。

6.Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals,建议使用以下方法:Objects.equals(a, b) 或者 ObjectUtil.equal(a, b)、ObjectUtil.notEqual(a, b);

7.集合初始化时,指定集合初始值大小。 说明:HashMap使用如下构造方法进行初始化,如果暂时无法确定集合大小,那么指定默认值(16)即可。         
    1)、List评估大小:List list = new ArrayList<>(2);
    2)、Map评估大小:Map paramMap = MapUtil.newHashMap(2);
    3)、避免字符串拼,使用StringBuider并评估大小,或者使用StrUtil.concat 或者 StringUtils.concat:
            StringBuilder builder = new StringBuilder(30);
            String log = StrUtil.concat(true, “a”, “b”, “c”); 

8.使用DTO,避免使用Map或者JSONObject传递参数(包括方法的参数传递);

9.获取当前毫秒数:System.currentTimeMillis(); 而不是new Date().getTime();

10.避免用Apache Beanutils进行属性的copy。Apache BeanUtils性能较差,可以使用其他方案比如Spring的BeanUtils,Hutool的BeanUtil。

你可能感兴趣的:(java,实习)