跟HashMap相关的面试问题

来源:互联网 发布:电音软件 编辑:程序博客网 时间:2024/06/06 01:01

HashMap是否有序?——>HashMap是无序的——>有没有有序的Map实现类?——>有,有LinkedHashMap和TreeMap(LinkedHashMap是按插入顺序或访问顺序有序,而TreeMap是实现了SortMap接口的,能够根据保存的记录按键排序,默认是按键值升序排序,当然也可以指定排序的比较器)——>这两个类是如何保证有序的?——>

LinkedHashMap是通过一个双向链表保证有序的,而TreeMap底层是基于红黑树有序的——>有没有更好的实现方式呢?


HashMap是线程安全的吗——>不是——>如何让它线程安全呢——>看前一篇博文——>分析一下这几种线程安全的map的实现原理以及异同——>你觉得产生线程安全的原因是什么呢——>A:是否是多线程环境   B:是否有共享数据   C:是否有多条语句操作共享数据 ——>线程安全的实现方式有哪些?——>互斥同步、非阻塞同步、无同步方案(可重入代码、线程本地存储)——>


其实说白了,java的基础一定要扎实,而集合和线程安全是紧密相连的,而这些又都离不开JVM,因此和JVM相关的知识也要熟悉。

0 0