java面试-0203-java集合并发修改异常、快速/安全失败原理、解决方法?

fail-fast:当多个线程对集合并发修改,或者遍历时修改结构(添加、删除、修改元素),迭代器抛出ConcurrentModificationException

集合使用modCount记录结构修改次数,迭代器遍历时将modCount赋值给expectedmodCount。如果遍历期间结构被修改,modCount会改变。每次调用hasNext()或next()时,迭代器检查到modCount不等于expectedmodCount时会抛出异常并终止遍历

用synchronized、CopyOnWriteArrayList

fail-safe,在复制的集合上进行遍历。~不会被迭代器检测到,所以迭代器不抛异常,如CopyOnWriteArrayList

迭代器不能访问到修改后的内容

相关推荐
神奇小汤圆1 小时前
RAG大厂面试题汇总:向量检索、混合检索、Rerank、幻觉处理高频问题
面试
东坡白菜1 小时前
破局全栈:一个前端开发的Java入门实战记录(1)
java·全栈
唐青枫1 小时前
Java Tomcat 实战指南:从 Servlet 容器到 Spring Boot 部署
java
wsaaaqqq2 小时前
roudan:自由选择实体、灵活操作数据、快速写入数据库的 Java 框架
java
假如让我当三天老蒯2 小时前
回归基本功:Map/Set 与 WeakMap/WeakSet 的区别
前端·面试
plainGeekDev5 小时前
null 判断 → Kotlin 可空类型
android·java·kotlin
糖拌西瓜皮5 小时前
Java开发者视角:深入理解Node.js异步编程模型
java·后端·node.js
plainGeekDev5 小时前
getter/setter → Kotlin 属性
android·java·kotlin
一线大码6 小时前
Smart-Doc 的简单使用
java·后端·restful
假如让我当三天老蒯6 小时前
回归基本功!前端的解构赋值、扩展运算符、剩余参数
前端·面试