如题所述
第1个回答 2022-06-15
1、不允许程序任何地方使用java.sql.Date、java.sql.Time 、java.sql.Timestamp。
2、判断list元素是否为空,使用isEmpty()方法,而不是size()==0。
3、集合转数组,必须使用集合的toArray(T[] array),传入的是类型完全一致、长度0的空数组
说明:如果直接使用toArray无参方法存在问题,只能返回object[]类,若强制转其他数组类型出现ClassCastException异常
使用 toArray 带参方法,数组空间大小的 length,
1) 等于 0,动态创建与 size 相同的数组,性能最好2)
2)大于 0 但小于 size,重新创建大小等于 size 的数组,增加 GC 负担。
3) 等于 size,在高并发情况下,数组创建完成之后,size 正在变大的情况下,负面影响与 2 相同。
4) 大于 size,空间浪费,且在 size 处插入 null 值,存在 NPE 隐患。
4、集合初始化时,指定集合初始值大小
说明:如果暂时无法确定集合大小,指定默认值(16)即可。
5、变量map使用entrySet而不是keySet。
说明:KeySet其实变量了2次,一次转为Iterator对象,另一次从hashMap中取出key对应的value。
如果jdk8使用Map.forEach()方法
6、Map类集合k/v能不能存储null值,表格
2、判断list元素是否为空,使用isEmpty()方法,而不是size()==0。
3、集合转数组,必须使用集合的toArray(T[] array),传入的是类型完全一致、长度0的空数组
说明:如果直接使用toArray无参方法存在问题,只能返回object[]类,若强制转其他数组类型出现ClassCastException异常
使用 toArray 带参方法,数组空间大小的 length,
1) 等于 0,动态创建与 size 相同的数组,性能最好2)
2)大于 0 但小于 size,重新创建大小等于 size 的数组,增加 GC 负担。
3) 等于 size,在高并发情况下,数组创建完成之后,size 正在变大的情况下,负面影响与 2 相同。
4) 大于 size,空间浪费,且在 size 处插入 null 值,存在 NPE 隐患。
4、集合初始化时,指定集合初始值大小
说明:如果暂时无法确定集合大小,指定默认值(16)即可。
5、变量map使用entrySet而不是keySet。
说明:KeySet其实变量了2次,一次转为Iterator对象,另一次从hashMap中取出key对应的value。
如果jdk8使用Map.forEach()方法
6、Map类集合k/v能不能存储null值,表格