欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

《Java开发手册》,Java开发手册

来源: javaer 分享于  点击 38358 次 点评:287

《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 = new ArrayList<>();
list.add("1");
list.add("2");
Iterator iterator = list.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映射

相关文章

    暂无相关文章
相关栏目:

用户点评