标签:ConcurrentHashMap

业余杂谈

如何设计并实现一个线程安全的 Map?

herman 10个月前 (09-09) 2963浏览

Map 是一种很常见的数据结构,用于存储一些无序的键值对。在主流的编程语言中,默认就自带它的实现。C、C++ 中的 STL 就实现了 Map,JavaScript 中也有 Map,Java 中有 HashMap,Swift 和 Python 中有 ...

JAVA

分享一些 Java HashMap 高级面试题!

herman 3年前 (2021-05-30) 1414浏览

今年以来,我面试过很多候选人。其中也有不少人背过面试题,但是经过我的这套面试题套餐,基本上没啥人能通过。 在 Java 面试中,HashMap 基本必问,只是问法各有不同而已。HashMap 有非常多的知识点,学好它对整个编程思想有非常大的帮...

JAVA

Java集合一网打尽!

herman 4年前 (2020-05-23) 2972浏览

相信在面试过程中,你也被问过 Java 集合知识点,比如类似下面这些题! 说说常见的集合有哪些吧?HashMap说一下,其中的Key需要重写hashCode()和equals()吗?HashMap中key和value可以为null吗?允许几个...

业余杂谈

集合的hashCode方法的最佳实现

herman 4年前 (2020-04-13) 3083浏览

这是一个 stackoverflow 上的高赞答案! 我们如何确定最佳 hashCode()方法的集合实现(假设 equals 方法已被正确覆盖)? 最佳答案来自于 Effective Java 书中。 1、创建一个int res...

JAVA

Java Map 扩容时,为什么推荐是2的幂

herman 4年前 (2020-02-16) 1708浏览

关于 Java 集合的面试题网上也有很多,很多都是基于源码的解毒。但有时候面试官会出其不意,问一些设计方面的问题。 比如,我们今天标题要讨论的,Java 中常见的 HashMap 等 Map 类集合,在扩容时,为什么是 2 倍,而不是 1.5...

JAVA

面试题:链表为什么使用内部类实现?

herman 5年前 (2019-04-08) 1779浏览

最近推广了一个关于面试的活动。我看了一下章节,其中有一个面试题是说什么是内部类?内部类的特点是什么? 看到这个题,我突然想到,工作这么多年,对内部类的关注一直都比较少。于是,在一次面试的机会中,我问了一个号称有 10 年工作经验的程序员:“链...

JAVA

HashMap 在JDK1.8与JDK1.7的性能测试对比

herman 6年前 (2018-11-20) 3379浏览

任何数据结构的产生总对应着要解决一个实际的问题!我在《HashMap 存在的意义是什么?》这篇文章中总结到:HashMap 这种数据结构解决存取一组 key-vaule 键值对数据,并且在插入、删除、遍历都有不错性能的数据结构。我们也知道,JDK...

JAVA

从 HashMap 的扩容机制来说它为什么不是线程安全的!

herman 6年前 (2018-11-20) 2391浏览

我在前面的文章《Java 线程安全的3大核心:原子性、可见性、有序性》中已经说到了什么是线程安全!根据这篇文章,我们对照着 HashMap 来说说它为什么不是线程安全的? 前面我也强调过多次,回答是不是线程安全的请从:原子性、可见性、有序性...

JAVA

HashMap 存在的意义是什么?

herman 6年前 (2018-11-20) 3149浏览

我一直在思考一个问题:HashMap 存在的意义是什么?也就是说 Java 为什么要设计 HashMap?我问了很多面试者以及很多 CSDN 的博客专家都没有找到想要的答案!于是我自己查了很多资料想找 HashMap 为什么需要这样设计?最终都没...

JAVA

学会 Java 中的锁,你只需要记住 6 句法则即可!

herman 6年前 (2018-11-17) 2418浏览

Java 中日常用到的锁大概有 14 种:悲观锁、乐观锁、自旋锁、适应性自旋锁、无锁、偏向锁、轻量级锁、重量级锁、公平锁、非公平锁、可重入锁、非可重入锁、独享锁、共享锁。 每种锁都有不同的使用场景!具体哪种场景使用哪种锁,你只需要回答下面 ...