一、创建和销毁对象篇
-
优先考虑构造器:当类构造包含多个参数时,除了传统的 JavaBeans 模式,更推荐使用 Builder 模式。Builder 模式通过构建器对象,调用类似 setter 的方法,设置相关参数,最后调用 build 方法生成不可变对象。
-
通过私有构造器强化不可实例化的能力:有些类,如工具类,通常不应被实例化,以防止误用。推荐将构造器设为私有,确保这些类不被实例化。
二、类和接口篇
-
最小化类和成员的可访问性:每个类或成员都应尽可能避免被外部访问,这有助于保护数据安全和代码清晰。
-
使可变形最小化:不可变类,即类实例一旦创建,其成员变量值便无法更改。这样的类更安全、更简单,且线程安全。
三、泛型篇
- 列表优先于数组:使用泛型比使用数组更为安全和灵活。泛型提供类型安全,而数组在运行时才确定类型,可能存在类型不匹配的风险。
四、方法篇
-
校验参数的有效性:在方法执行复杂逻辑之前,应对参数进行校验,确保输入的有效性。
-
谨慎设计方法签名:方法名应清晰表达其功能,参数列表应简洁明了。
-
返回零长度的数组或者集合,而不是null:这有助于避免 NullPointerException,提高代码健壮性。
五、通用程序设计篇
-
避免使用float和double进行精确计算:使用 BigDecimal 进行货币计算,确保结果的精确性。
-
基本类型优先于装箱基本类型:在无需特殊场景的情况下,优先使用基本类型,避免不必要的装箱操作。
六、异常
- 每个方法抛出的异常都要有文档:清晰记录每个异常的类型、error code 和描述,帮助调用者更好地处理异常。
七、引用
Bloch, Joshua. 2018. Effective Java, 3rd Edition
作者 | 宜秋
原文链接:http://click.aliyun.com/m/1000299099/
本文为阿里云原创内容,未经允许不得转载。
转载请注明来自广州玛斯顿影音有限公司,本文标题:《Effective Java 在工作中的应用总结 》