Java高频面试题一-创新互联

Java高频面试题一
  • 一、List 和 Set 和 Map 的区别
  • 二、HashMap 和ConcurrentHashmap 的区别
  • 三、arrarylist,linkedlist;arraylist内部扩容机制是怎样的?

成都创新互联公司专注于立山企业网站建设,响应式网站建设,商城网站建设。立山网站建设公司,为立山等地区提供建站服务。全流程按需规划网站,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务一、List 和 Set 和 Map 的区别

区别一 结构特点:

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:能够把它保存的记录根据键排序,默认是键值的升序排序
二、HashMap 和ConcurrentHashmap 的区别
ConcurrentMap 是线程安全的,而hashMap不是线程安全的
ConcurrentMap的操作都是原子操作,hashMap不是
三、arrarylist,linkedlist;arraylist内部扩容机制是怎样的?

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前文章:Java高频面试题一-创新互联
链接URL:http://myzitong.com/article/jidic.html