四::字符串
52,推荐使用String直接量赋值
53,注意方法中传递的参数要求
54,正确使用String,StringBuffer,StringBuilder
55,注意字符串的位置
56,自由选择字符串拼接方法
57,推荐在复杂字符串操作中使用正则表达式
58,强烈建议使用UTF编码
59,对字符串排序持一种宽容的心态
五::数组和集合
60,性能考虑,数组是首选
61,若有必要,使用变长数组
62,警惕数组的浅拷贝
63,在明确的场景下,为集合指定初始容量
64,多种最值算法,适时选择
65,避开基本类型数组转换列表陷阱
66,asList方法产生的List对象不可更改
67,不同的列表选择不同的遍历方法
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,由点及面,一叶知秋————集合大家庭
六::枚举和注解
83,推荐使用枚举定义常量
84,使用构造函数协助描述枚举项
85,小心switch带来的空值异常
86,在switch的default代码块中增加AssertionError错误
87,使用valueOf前必须进行校验
88,用枚举项的数量限制在64个以内
89,用枚举实现工厂方法模式更简洁
90,小心注解继承
91,枚举和注解结合使用威力更大
92,注意@Override不同版本的区别