美国上市公司,专注Java培训21年

迭代器和枚举之间的区别?


Java 面试简答题

1、迭代器和枚举之间的区别

答:

如果面试官问这个问题,那么他的意图一定是让你区分 Iterator 不同于 Enumeration 的两个方面:

Iterator 允许移除从底层集合的元素。

Iterator 的方法名是标准化的。

2、什么是 CopyOnWriteArrayList,它与 ArrayList 有何不同?

答:

CopyOnWriteArrayList 是 ArrayList 的一个线程安全的变体,其中所有可变操作(add、set等等)都是通过对底层数组进行一次新的复制来实现的。

相比较于 ArrayList 它的写操作要慢一些,因为它需要实例的快照。

CopyOnWriteArrayList 中写操作需要大面积复制数组,所以性能肯定很差,但是读操作因为操作的对象和写操作不是同一个对象,读之间也不需要加锁,读和写之间的同步处理只是在写完后通过一个简单的“=”将引用指向新的数组对象上来,这个几乎不需要时间,这样读操作就很快很安全,适合在多线程里使用,绝对不会发生 ConcurrentModificationException ,因此 CopyOnWriteArrayList 适合使用在读操作远远大于写操作的场景里,比如缓存。


【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!

Java开发高端课程免费试学

大咖讲师+项目实战全面提升你的职场竞争力

  • 海量实战教程
  • 1V1答疑解惑
  • 行业动态分析
  • 大神学习路径图

相关推荐

更多
  • Java面试逻辑题
    Java面试逻辑题
    1、什么是反射 API?它是如何实现的?答:反射是指在运行时能查看一个类的状态及特征,并能进行动态管理的功能。 这些功能是通过一些内建类的反射 API 提供的,比如 Class,Method,Field,Constructors 等。 详情>>

    2017-10-25

  • Java技术面试题(企业面试题常问题目)
    Java技术面试题(企业面试题常问题目)
    感谢大家阅读由java培训机构分享的“Java技术面试题(企业面试题常问题目)”我们会不定期的分享更多关于面试题的文章,供广大java学员进行参考,更多精彩内容请关于Java培训官网 详情>>

    2017-08-02

  • Java笔试题大全带答案(经验汇总)
    Java笔试题大全带答案(经验汇总)
    8-8java编程笔试面试简答题,来自java培训机构的分享 详情>>

    2017-08-08

  • Java开发面试题汇总(这一篇就够了)
    Java开发面试题汇总(这一篇就够了)
    感谢大家阅读由java企业面试题分享的“Java面试宝典-这一篇就够了”希望对大家有所帮助 详情>>

    2017-12-18

  • Java开班时间

    收起