读编写高质量代码总结
目录
- 目的
- 一、Java基础有关问题及建议
- 建议1:不要在常量和变量中出现易混淆的字母
- 建议2:不要让常量"蜕变"成变量
- 建议3:三元操作符的类型务必一致
- 建议4:避免带有变长参数的方法重载
- 建议5:别让null值和空值威胁到变长方法
- 建议6:覆写变长方法也循规蹈矩
- 建议7:警惕自增的陷阱
- 建议9:少用静态导入
- 建议10:不要再本类中覆盖静态导入的变量和方法
- 建议11:养成良好习惯,显式声明UID
- 建议12:避免用序列化类,在构造函数中为不变量赋值
- 建议13:避免为final变量复杂赋值
- 建议14:使用序列化的私有方法巧妙解决部分属性持久化问题
- 建议15:break万万不可忘
- 建议16:易变业务使用脚本语言编写
- 建议17:慎用动态编译
- 建议18:避免instanceof非预期结果
- 二、基本类型篇
- 三、类、对象及方法
- 建议31:在接口中不要存在实现代码
- 建议32:静态变量一定要先声明后赋值
- 建议33:不要覆写静态方法
- 建议34:构造函数尽量简化
- 建议35:避免在构造函数中初始化其他类
- 建议36:使用构造代码块精炼程序
- 建议37:构造代码块会想你所想
- 建议38:使用静态内部类提高封装性
- 建议39:使用匿名类的构造函数
- 建议40:匿名类的构造函数很特殊
- 建议41:让多重继承成为现实
- 建议42:让工具类不可实例化
- 建议43:避免对象的浅拷贝
- 建议44:推荐使用序列化实现对象的拷贝
- 建议45:覆写equals方法时不要识别不出自己
- 建议46: equals应该考虑null值情景
- 建议47:在equals中使用getClass进行类型判断
- 建议48: 覆写equals方法必须覆写hashCode方法
- 建议49: 推荐覆写toString方法
- 建议50: 使用package-info类为包服务
- 建议51: 不要主动进行垃圾回收
- 四、字符串
- 五、数组和集合
- 建议60:性能考虑,数组是首选
- 建议61:若有必要,使用变长数组
- 建议62: 警惕数组的浅拷贝
- 建议63:在明确的场景下,为集合指定初始容量
- 建议64: 多种最值算法,适时选择
- 建议65:避开基本类型数组转换列表陷阱
- 建议66:asList方法产生的List对象不可更改
- 建议68:不同的列表选择不同的遍历方法
- 建议68:频繁插入和删除时使用LinkedList
- 建议69: 列表相等只需要关心元素数据
- 建议70: 子列表只是原列表的一个视图
- 建议71:推荐使用subList处理局部列表
- 建议72:生成子列表后不要再操作原列表
- 建议73:使用Comparator进行排序
- 建议74:不推荐使用binarySearch对列表进行检索
- 建议75:集合中的元素必须要做到compareTo和equals同步
- 建议76:集合运算时使用更优雅的方式
- 建议77:使用shuffle打乱列表
- 建议78:减少HashMap中元素的数量
- 建议79:集合中的哈希码不要重复
- 建议80:多线程使用Vector或HashTable
- 建议81:非稳定排序推荐使用List
- 建议82:由点及面,一叶知秋——集合大家族
- 六、枚举和注解
- 七、泛型和反射
- 一、Java基础有关问题及建议