Java高频面试题一-创新互联
Java高频面试题一
网站栏目:Java高频面试题一-创新互联
标题来源:http://cdiso.cn/article/jidic.html
- 一、List 和 Set 和 Map 的区别
- 二、HashMap 和ConcurrentHashmap 的区别
- 三、arrarylist,linkedlist;arraylist内部扩容机制是怎样的?
区别一 结构特点:
List 和 Set 是存储单列数据的集合,Map 是存储键值对这样的双列数据的集合;
List 中存储的数据是有序的,值可以被重复;
Set 中存储的数据是无序的,值不允许有重复,重复的值会被替换掉;
Map 中存储的数据是无序的,键是唯一的不能重复,但是值可以重复;
区别二 实现类:
List 接口有三个实现类
- LinkedList:基于链表实现,链表内存是散乱的,每个元素存储本身内存地址的同时还会存储下一个元素的地址,链表增删快,查找慢
- ArrayList:基于数组实现的,非线程安全,效率高,便于索引(查询),但不便于插入删除
- Vector:基于数组实现的,线程安全,效率低
Set 接口有两个实现类
- HashSet:底层是由 HashMap 实现的,不允许集合中有重复的值,使用该方式时需要重写 equals() 和 hashCode() 方法
- LinkedHashSet:继承与 HashSet,同时又基于 LinkedHashMap 来进行实现,底层使用的是 LinkedHashMap
Map 接口有三个实现类
- HashMap:基于 hash 表的 Map 接口实现,非线程安全,高效,支持 null 值和 null键
- HashTable:线程安全,低效,不支持 null 值和 null 键
- TreeMap:能够把它保存的记录根据键排序,默认是键值的升序排序
ConcurrentMap 是线程安全的,而hashMap不是线程安全的
ConcurrentMap的操作都是原子操作,hashMap不是
三、arrarylist,linkedlist;arraylist内部扩容机制是怎样的?
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站栏目:Java高频面试题一-创新互联
标题来源:http://cdiso.cn/article/jidic.html