近期后端面试HashMap依然是重点!!!
总结:
HashMap操作
- put、get、remove过程
- get过程有公司要求手写代码
- 考察get的时间复杂度
- 扩容
多线程相关
- 多线程条件下删除元素时,会遇到什么问题?
- HashMap是否线程安全?如何解决?
- ConcurrentHashMap怎样实现线程安全?
底层原理
- 讲一讲HashMap的底层(开放性问题)
- 与HashTable的区别
- 1.7 1.8中的区别
- 1.7中分段锁如何实现?
- CurrentHashMap原理
- 红黑树原理
底层原理偏向于基础知识和平时积累的考察,面试中可以去引导面试官,将面试官引导到自己熟悉的知识点上。
关注我每周分享最新面经总结。
原题
- HashMap怎么删除一个元素;直接remove会怎样?怎么解决?多线程下HashMap会出现的问题?怎么解决?
- hashmap是安全的么?默认大小是多少?底层讲讲?
- 讲一下HashMap的put过程,底层结构;HashMap有哪些问题 答了线程不安全;那线程不安全想要用这种数据结构该怎么办?ConcurrentHashMap怎么实现的线程安全?
- hashmap和hashtable区别,分别继承了什么接口?
- HashMap jdk1.7/8有什么区别?元素数量下降长会变回链表吗?HashMap在多线程场景下使用,jdk7/8有都什么问题?问题有什么区别?ConcurrentHashMap怎么保证线程安全的?1.7的分段锁怎么实现的?
- Java中常用的集合,HashMap底层实现?
- hashmap底层原理;concurrenthashmap;1.8数据结构做了什么方面的优化?
- HashMap底层原理,1.7&1.8的区别?
- 手写HashMap get?
- Hashmap的底层数据结构?什么时候会扩容?
- HashMap原理;ConcurrentHashMap原理?
- HashMap查找的时间复杂度,介绍一下查找过程,如果对应桶里只有一个元素还需要比较吗;HashMap是线程安全的吗?
- hashmap的put和get流程,讲一下红黑树?