当前位置: 首页 > news >正文

河北省沧州建设厅网站网站打开慢是什么原因

河北省沧州建设厅网站,网站打开慢是什么原因,大余网站建设,域名备案网站源码字节面试#xff0c;问到的一个小知识点#xff0c;这里做一下总结#xff0c;其实小编之前有一篇文章#xff0c;已经对此有过涉及#xff0c;不过这里知识专项针对于问题#xff0c;把这个知识点拎出来说一下。 1.问题 什么是Fail-fast机制#xff1f; Hashmap是否拥… 字节面试问到的一个小知识点这里做一下总结其实小编之前有一篇文章已经对此有过涉及不过这里知识专项针对于问题把这个知识点拎出来说一下。 1.问题 什么是Fail-fast机制 Hashmap是否拥有Fail-fast机制 ConcurrentModificationException异常原因和解决方法是什么 哪些你常用的数据结构是Fail-fast的哪些不是举例说明一下 Enumeration与Iterator的异同 2.探索、解答 2.1 Fail-fast机制 从字面意思很好理解就是快速失败机制。映射到java设计中fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时就可能会产生fail-fast事件。例如当某一个线程A通过iterator去遍历某集合的过程中若该集合的内容被其他线程所改变了那么线程A访问集合时就会抛出ConcurrentModificationException异常产生fail-fast事件。 2.2 ConcurrentModificationException List在for、while正常遍历过程中如果remove元素容易出现ConcurrentModificationException 异常根本原因的话之前ArrayList源码分析文章已经讲过各位有兴趣可以移步阅读。 ConcurrentModificationException发生是因为我们在使用迭代器遍历List的同时还使用了List相应的remove、add进行元素增加或删除导致不一。 2.3 Enumeration与Iterator的异同 2.3.1 Iterator java中迭代器接口的源码很简单我们看下面 package java.util;import java.util.function.Consumer;public interface IteratorE {boolean hasNext();E next();default void remove() {throw new UnsupportedOperationException(remove);}default void forEachRemaining(Consumer? super E action) {Objects.requireNonNull(action);while (hasNext())action.accept(next());} } 就是遍历、移除的接口定义这块知识我们在Android源码设计模式探索与实战【迭代器模式】一文中对于迭代器设计模式做过深入剖析迭代器模式重在容器类集合提供顺序遍历的方式其实从上面Demo、实践案例、源码中大家都可以看到迭代器模式实际上就是把不同类型的集合的遍历进行了封装 这样针对于客户端来说只需关注迭代器接口不再需要关心内部使用了什么类型的集合。 2.3.2 Enumeration 我们看一下这个接口的源码 package java.util;/*** see java.util.Iterator* see java.io.SequenceInputStream* see java.util.Enumeration#nextElement()* see java.util.Hashtable* see java.util.Hashtable#elements()* see java.util.Hashtable#keys()* see java.util.Vector* see java.util.Vector#elements()** author Lee Boynton* since JDK1.0*/ public interface EnumerationE {boolean hasMoreElements();E nextElement(); } 只有是否还有元素的判断接口、遍历下一个元素的两个方法定义并没有移除方法所以这个玩意自然而然就不存在Fail-fast和ConcurrentModificationException了。 2.3.3 Enumeration与Iterator异同总结 其实一看源码相信大家就立马明白了Enumeration与Iterator都是java定义的集合遍历接口不同的是Iterator提供了移除接口。 有了移除操作自然而然就是涉及到多线程安全性那么就引入了可能存在的ConcurrentModificationException。 2.4 Fail-fast举例 哪些你常用的数据结构是Fail-fast的哪些不是上面源码的时候其实大家已经看到了答案。 Arraylist、HashMapLinkedHashmap、HashSet本身就是继承与Hashmap的是有Fail-fast机制的因为他们都有迭代器Iterator。而HashTable、Vector的某些遍历方式是没有的因为它实现与Enumeration。 * see java.util.Iterator* see java.io.SequenceInputStream* see java.util.Enumeration#nextElement()* see java.util.Hashtable* see java.util.Hashtable#elements()* see java.util.Hashtable#keys()* see java.util.Vector* see java.util.Vector#elements()public class Itbird{ public static void main(String[] args){Vector v new Vector();v.addElement(my);v.addElement(you);Enumeration e v.elements();//返回Enumeration对象while(e.hasMoreElements()){String value (String)e.nextElement();//调用nextElement方法获得元素System.out.print(value);}} }
http://www.hkea.cn/news/14278669/

相关文章:

  • 网站等保建设工作网站建设
  • 中山网站建设推荐互动网络平台
  • 做家具的网站国内工业设计网站
  • 用网站做设计 素材网站有哪
  • 做企业网站服务器在国外千万不要学电子信息工程
  • 移动网站屏蔽整站优化案例
  • 企业网站备案后可否更改名称泰安做网站多少钱
  • 网站营销工作流程餐饮企业网站源码
  • 专业制作企业网站如何规划设计一个网站
  • 辽宁省城乡建设厅官方网站外贸一般上什么网站
  • 有代码怎么做网站单页seo如何优化
  • 网站建设公司报价表wordpress文章外链缩略图
  • 网站推广公司黄页深圳市住房和城乡建设厅网站
  • 无锡做网站专业的公司wordpress注册页模板下载
  • 北京城乡建设部网站A华企网络网站建设
  • 网站上的美工图片要怎么做顺德定制网站建设
  • 建设部网站国家级工法目录网站建设推广是什么工作
  • 网站建设架构优秀案例影响网站pr的因素有哪些
  • 网站制作评价标准优秀的响应式网站
  • 用ps做网站网页做网批的有什么网站呢
  • 建设电商网站多少钱网站的经营推广
  • 石河建设技校网站点样做网站
  • 门诊部网站建设WordPress与前端
  • 做企鹅号的视频素材网站html网站制作教程
  • 网站的空间和域名抖音关键词排名系统
  • 英文专业的网站建设上海高端网站定
  • 电脑上做免费网站教程大丰seo排名
  • 怎样做淘宝商品链接导航网站做网站的整体风格确定方式
  • 莘县住房建设局网站苏州惊天网站制作网
  • 网站建设描述小程序商城一般哪家好