Java 快速失败( fail-fast ) 安全失败( fail-safe )

原文:http://www.cnblogs.com/ygj0930/p/6543350.html

快速失败( fail-fast ):当你在迭代一个集合的时候,如果有另一个线程正在修改你正在访问的那个集合时,就会抛出一个ConcurrentModification异常。

在java.util包下的都是快速失败。

安全失败( fail-safe ):你在迭代的时候会去底层集合做一个拷贝,所以你在修改上层集合的时候是不会受影响的,不会抛出ConcurrentModification异常。

在java.util.concurrent包下的全是安全失败的。

时间: 2024-10-12 20:51:34

Java 快速失败( fail-fast ) 安全失败( fail-safe )的相关文章

面试题思考:java中快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?

一:快速失败(fail-fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加.删除.修改),则会抛出Concurrent Modification Exception. 原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量.集合在被遍历期间如果内容发生变化,就会改变modCount的值.每当迭代器使用hashNext()/next()遍历下一个元素之前,都会检测modCount变量是否为expectedmodCount值,

微信企业号回调模式配置讲解 Java Servlet+Struts2版本 echostr校验失败解决

微信企业号回调模式配置讲解 Java Servlet+Struts2版本 echostr校验失败解决 echostr校验失败,请您检查是否正确解密并输出明文echostr 异常java.security.InvalidKeyException:illegal Key Size 也就是echostr校验失败,请您检查是否正确解密并输出明文echostr这个错误 企业微信登陆地址http://qy.weixin.qq.com/ 配置成功以后 Servlet public void doGet(Htt

成功都一样,失败各不同;失败的项目也许值得你警醒

目录 一.团队建设 1.1.注意高效的研发团队建设 1.2.稳定的团队 1.3.PM非常关键 二.规范过程 2.1.合理的安排工作计划 2.2.开发前制订开发规范 2.3.项目完成时注重归纳总结 2.4.使用源代码管理器 2.5.制定项目失败计划 2.6.使用一体化项目管理软件 2.6.1.项目管理工具能完成的功能 2.6.2.IT项目管理常用工具 三.定位与需求 3.1.尽量做产品 3.2.抽象出项目的核心 3.3.采用多种收集需求的方式 3.4.不要过度收集需求 3.5.尽量选择大项目 3.

Java快速教程

Java快速教程 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Java是面向对象语言.这门语言其实相当年轻,于1995年才出现,由Sun公司出品.James Gosling领导了Java的项目小组.该项目的最初只想为家电设计一门容易移植的语言.然而,在获得了Netscape浏览器支持后,Java快速推广,应用广泛. Java受到C和C++的强烈影响.Java与C++相近,都是静态类型,但移除了C++中容易出错的一些特征,比

转载:Java快速教程

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Java是面向对象语言.这门语言其实相当年轻,于1995年才出现,由Sun公司出品.James Gosling领导了Java的项目小组.该项目的最初只想为家电设计一门容易移植的语言.然而,在获得了Netscape浏览器支持后,Java快速推广,应用广泛. Java受到C和C++的强烈影响. Java与C++相近,都是静态类型,但移除了C++中容易出错的一些特征,比如指针和多重继承

Java快速教程--vamei 学习笔记(基础篇)

链接:http://www.cnblogs.com/vamei/archive/2013/03/31/2991531.html java快速教程第1课 从HelloWorld到面向对象 学习网址:http://www.cnblogs.com/vamei/archive/2013/03/14/2958654.html java快速教程第2课 方法与数据成员 学习网址:http://www.cnblogs.com/vamei/archive/2013/03/25/2964430.html java快

Java快速教程--vamei 学习笔记(进阶篇)

感谢vamei,学习链接:http://www.cnblogs.com/vamei/archive/2013/03/31/2991531.html Java进阶01 String类 学习链接:http://www.cnblogs.com/vamei/archive/2013/04/08/3000914.html 字符串操作 ---------------------------------------------------------------------------------------

第一篇文章-VS的Local DB数据库连接失败,创建实例失败的解决方案

用了很久的LocalDB了,不用装那么多的SQL组件感觉很不错,前不久调试代码碰到一个问题 ,VS突然就连接不上LocalDB了,琢磨了一下午,其实有个很简单的方法. 第一步,先找到SQL Local DB的版本,我用的是VS2013,所以是V11.0,或者可以在cmd里打 sqllocaldb versions 这样的话,其实默认的实例就是v11.0了,当然如果你项目用的不是这个实例的话,那就不用这样了. 第二步,找到实例的文件夹,我用的是win8的系统,我的路径是C:\Users\用户名\A

Java快速判断是不是手机号

假如现在有一个字符串,如何快速准确的判断其是否为手机号? public boolean isMobileNO(String mobiles) { Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0-9]))\\d{8}$"); Matcher m = p.matcher(mobiles); return m.matches(); } 相当简单-------------------------- Java快速判断是不是手

索引快速扫描(index fast full scan)

一.索引快速扫描(index fast full scan) 索引快速全扫描(INDEX FAST FULL SCAN)和索引全扫描(INDEX  FULL SCAN)极为类似,它也适用于所有类型的B树索引(包括唯一性索引和非唯一性索引).和索引全扫描一样,索引快速全扫描也需要扫描目标索引所有叶子块的所有索引行. 索引快速全扫描与索引全扫描相比有如下三点区别. (1)索引快速全扫描只适用于CBO. (2)索引快速全扫描可以使用多块读,也可以并行执行. (3)索引快速全扫描的执行结果不一定是有序的