《Java开发手册》,Java开发手册
《Java开发手册》,Java开发手册
一、 编程规约 (一) 命名风格
(三) 代码格式
(四) OOP规约
(五) 集合处理
说明:使用 toArray 带参方法,数组空间大小的 length: 1) 等于 0,动态创建与 size 相同的数组,性能最好。 2) 大于 0 但小于size,重新创建大小等于 size 的数组,增加 GC负担。
Java 开发手册
12/44
3) 等于 size,在高并发情况下,数组创建完成之后,size 正在变大的情况下,负面影响与上相同。 4) 大于 size,空间浪费,且在size 处插入 null 值,存在 NPE隐患。
反例:String[] array= (String[]) list.toArray();运行,报错
正例:
List
list.add("1");
list.add("2");
Iterator
while (iterator.hasNext()) {
String item = iterator.next();
if (删除元素的条件) {
iterator.remove();
}
}
调用iterator的删除方法:
1.首先检查集合
2.删除元素
3.下一个元素的索引位置cursor重新赋值
4.检查集合参数重新赋值
反例:
for (String item : list) {
if ("1".equals(item)) {
list.remove(item);
}
}
总结:如果我们我们用foreach删除的元素刚好是最后一个,删除完成前下一个元素的索引位置cursor刚好等于集合长度size的大小。但是,删除完成后size的数量减1,但是cursor并没有变化。导致下一次循环不相等继续向下执行,导致检查数组不通过,抛出java.util.ConcurrentModificationException
(六) 并发处理
(七) 控制语句
(八) 注释规约
(九) 其它
二、异常日志
(一) 异常处理
(二) 日志规约
三、单元测试
四、安全规约
五、MySQL数据库
(一) 建表规约
(二) 索引规约
(三) SQL语句
(四) ORM映射
相关文章
- 暂无相关文章
用户点评