Java基础知识(八)-Map

yuanxl 1年前 ⋅ 316 阅读

第五章 面试BAT高级工程师/技术经理的java集合框架Map了解多少

第1集 编程语言面试题之新版javase集合框架Map篇<小试牛刀上>

简介:集合框架里面基础Map面试题

  • 考点:Map 相关基础知识掌握情况
  • 难度【***】
  • 了解Map吗?用过哪些Map的实现 答:HashMap、Hashtable、LinkedHashMap、TreeMap、ConcurrentHashMap

  • 说下 HashMap和Hashtable 的区别

    答:

    • HashMap:底层是基于数组+链表,非线程安全的,默认容量是16、允许有空的健和值
    • Hashtable:基于哈希表实现,线程安全的(加了synchronized),默认容量是11,不允许有null的健和值

 

第2集 编程语言面试题之对象底层HashCode和equals掌握了吗

简介:对象的比较、排重 hashcode和equals经常需要重写,也是map和set里面常用知识

  • 考点:hashcode和equals掌握情况

  • 难度【** **】

  • 介绍下对象的 hashCode()和equals(),使用场景

     

 

  • 代码实战: 编写一个User对象,重写里面的hashcode和equal方法

     
     

     

 

 

 

 

第3集 编程语言面试题之新版javase集合框架Map篇<小试牛刀下>

简介:集合框架里面基础Map面试题

  • 考点:Map 相关基础知识掌握情况

  • 难度【***】

  • HashMap和TreeMap应该怎么选择,使用场景

     
     
  • Set和Map的关系

     
     
  • 常见Map的排序规则是怎样的?

     
     

     

 

 

第4集 编程语言面试题之新版javase集合框架Map篇<进阶>

简介:集合框架里面基础Map面试题进阶

  • 考点:考查Map的横向和纵向知识点
  • 难度【** **】
  • 如果需要线程安全,且效率高的Map,应该怎么做?

    答案:多线程环境下可以用concurrent包下的ConcurrentHashMap, 或者使用Collections.synchronizedMap(),

    ConcurrentHashMap虽然是线程安全,但是他的效率比Hashtable要高很多

     

  • 为什么Collections.synchronizedMap后是线程安全的?

    答案:使用Collections.synchronizedMap包装后返回的map是加锁的

 

 

 

 

 

 

第5集 编程语言面试题之新版javase集合框架Map高手篇<上>

简介:深入底层HashMap实现原理

  • 考点:是否掌握HashMap的底层实现
  • 难度【** **】
  • 看过HashMap源码吗,介绍下你了解的HashMap
 
 

image-20200131220936679

  • 能否解释下什么是Hash碰撞?常见的解决办法有哪些,hashmap采用哪种方法

     
     

 

 

 

 

 

 

 

 

第6集 编程语言面试题之新版javase集合框架Map高手篇<中>

简介:深入底层HashMap实现原理

  • 考点:是否掌握HashMap的底层实现
  • 难度【** * **】
  • 你说HashMap底层是 数组+链表+红黑树,为什么要用这几类结构呢?

     
     

    image-20200131220936679

  • 为啥选择红黑树而不用其他树,比如二叉查找树,为啥不一直开始就用红黑树,而是到8的长度后才变换

 
 

image-20200201151450172

 

 

 

 

 

第7集 源码剖析之深入新版HashMap高手篇<下>

简介:深入底层HashMap实现原理,分析put、get源码实现

  • 考点:是否掌握HashMap的底层实现,put、get流程
  • 难度【** ** **】

  • 说下hashmap的put和get的核心逻辑(JDK8以上版本)

    • put核心流程,看图(高清图看资料里面,第5章第7集文件夹里面的html文件)

      image-20200201151131252

    • get核心流程

       
       

       

 

 

 

 

 

第8集 编程语言面试题之新版javase集合框架ConcurrentHashMap篇

简介:并发包里面ConcurrentHashMap面试题

  • 考点:是否掌握并发包下的ConcurrentHashMap基础和原理

  • 难度【** **】

  • 了解ConcurrentHashMap吗?为什么性能比hashtable高,说下原理

     
     

     

  • jdk1.7和jdk1.8里面ConcurrentHashMap实现的区别有没了解

     
     

     

     

 

第9集 源码剖析之深入新版ConcurrentHashMap篇

简介:解读并发包里面ConcurrentHashMap核心Put源码

 

  • 考点:是否掌握并发包下的ConcurrentHashMap基础和原理

  • 难度【** **】

  • 说下ConcurrentHashMap的put的核心逻辑(JDK8以上版本)

     

全部评论: 0

    我有话说: