《编写高质量代码:改善Java程序的151个建议》笔记

To fight the unthinkable,you have to be willing to do the unthinkable.
 
不要在循环中使用try catch,应该放在循环的外面。

One Line

务必让常量的值在运行期间保持不变。
 
保证三元操作符中的两个操作类型一致。
 
反序列化时构造方法不会执行。
 
在序列化类中,不使用构造方法为final变量赋值。
 
避免为final变量复杂赋值。
 
发布应用系统时,禁止使用类文件替换方式,整体WAR包发布才是万全之策。
 
包装类型参与运算时,要做Null值校验。
 
通过包装类的valueOf 生成包装实例可以显著提高空间和时间性能。
 
优先使用基本类型
 
变量要先声明后使用
 
不要覆写静态方法
 
多重继承可以用内部类来实现。
 
equals 应该考虑Null值情景
 
Apache commons.jar ToStringBuilder类
 
推荐使用String直接量赋值
 
如果排序不是一个关键算法,使用Collator 类即可。
 
警惕数组的浅拷贝
 
在明确的情况下,为集合指定初始容量。
 
原始类型数纽不能作为asList 的输入参数,否则会引起程序逻辑混乱。
 
频繁插入和删除时使用LinkedList
 
TreeSet 适用于不变量的集合数据排序,比如String 、Integer等类型,但不适用于可变量的排序,特别是不确定何时元素会发生变化的数据集合。
 
线程优先级只使用三个等级。
 
Google Guava
 
Joda
 
posted @   林本托  阅读(386)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示