如何设计并实现一个线程安全的 Map?
herman 1年前 (2023-09-09) 3361浏览
Map 是一种很常见的数据结构,用于存储一些无序的键值对。在主流的编程语言中,默认就自带它的实现。C、C++ 中的 STL 就实现了 Map,JavaScript 中也有 Map,Java 中有 HashMap,Swift 和 Python 中有 ...
herman 1年前 (2023-09-09) 3361浏览
Map 是一种很常见的数据结构,用于存储一些无序的键值对。在主流的编程语言中,默认就自带它的实现。C、C++ 中的 STL 就实现了 Map,JavaScript 中也有 Map,Java 中有 HashMap,Swift 和 Python 中有 ...
herman 4年前 (2021-05-30) 1520浏览
今年以来,我面试过很多候选人。其中也有不少人背过面试题,但是经过我的这套面试题套餐,基本上没啥人能通过。 在 Java 面试中,HashMap 基本必问,只是问法各有不同而已。HashMap 有非常多的知识点,学好它对整个编程思想有非常大的帮...
herman 4年前 (2020-11-05) 7098浏览
高并发环境下,HashMap可能出现的致命问题!注意:是在 jdk8 以下版本发生! 我们先来看看 Rehash 的概念。 Rehash 是 HashMap 在扩容时候的一个步骤。 HashMap 的容量是有限的。当经过多次元素插...
herman 4年前 (2020-08-09) 5773浏览
先说一下,在 Java8 中 computeIfAbsent 方法有一个严重的死循环 bug,Java9 中已经修复了,这个后面我们单独列举文章来详细说它是如何产生以及如何被修复的。 实际上从 Java 8 开始,Map 提供了 comput...
herman 5年前 (2020-05-23) 3105浏览
相信在面试过程中,你也被问过 Java 集合知识点,比如类似下面这些题! 说说常见的集合有哪些吧?HashMap说一下,其中的Key需要重写hashCode()和equals()吗?HashMap中key和value可以为null吗?允许几个...
herman 5年前 (2020-04-13) 3193浏览
这是一个 stackoverflow 上的高赞答案! 我们如何确定最佳 hashCode()方法的集合实现(假设 equals 方法已被正确覆盖)? 最佳答案来自于 Effective Java 书中。 1、创建一个int res...
herman 5年前 (2020-02-16) 1801浏览
关于 Java 集合的面试题网上也有很多,很多都是基于源码的解毒。但有时候面试官会出其不意,问一些设计方面的问题。 比如,我们今天标题要讨论的,Java 中常见的 HashMap 等 Map 类集合,在扩容时,为什么是 2 倍,而不是 1.5...
herman 5年前 (2019-07-16) 2155浏览
Java 中,提供了很多常用的数据结构。比如,Map、List、Set 等。但是,在很多时候,我们可能需要统计某个数据出现的次数,这时往往我们的实现代码可能如下所示: Map<String, Integer> counts = n...
herman 6年前 (2019-04-09) 2725浏览
最近看了 Github 上很火的项目,star 超过了 vue。就想看看 github 的 star 排行榜,看完之后,我突然想到能不能看看 stackoverflow 上的排行榜。做一些翻译也很不错! 在打开 stackoverflow 的...
herman 6年前 (2019-04-09) 3070浏览
最近,我知道有好几个同学会偶尔的阅读阅读我的博客。我倍感压力,他都是 CTO 级的人物,我经常向他们取经,膜拜他们。 这不最近,有一个同学公司里要搞培训,主讲人对 LinkedHashMap 讲的不够深,希望我有好文章推荐一下。既然这么说了,...
herman 6年前 (2019-04-08) 2365浏览
对于缓存来说,我相信很多人都不会陌生。一般的,对于常用的一些数据,基础数据等,也或者是为了高并发,比如抢购等把热点数据放入缓存中以实现高并发快速响应。 说到缓存,Redis、memcached 等在面试中属于必问的知识点了。虽然这些专门的缓存...
herman 6年前 (2019-04-08) 1870浏览
最近推广了一个关于面试的活动。我看了一下章节,其中有一个面试题是说什么是内部类?内部类的特点是什么? 看到这个题,我突然想到,工作这么多年,对内部类的关注一直都比较少。于是,在一次面试的机会中,我问了一个号称有 10 年工作经验的程序员:“链...
herman 6年前 (2018-12-07) 4105浏览
我百度和谷歌分别搜索了一下 HashSet,发现谷歌上hashset用法、hashset是什么、hashset hashmap、hashset详解、hashset c#、hashset遍历、hashset使用、hashset重复、hashset ...
herman 6年前 (2018-11-23) 3273浏览
Hashtable 和 HashMap 是面试中必问的两个数据结构知识点。很多人拿他们做比较,今天我们就一起来谈谈 Hashtable! 在开始之前,我先来问一个问题,Hashtable 中的 T 为什么不是大写。我百度...
herman 6年前 (2018-11-20) 3570浏览
任何数据结构的产生总对应着要解决一个实际的问题!我在《HashMap 存在的意义是什么?》这篇文章中总结到:HashMap 这种数据结构解决存取一组 key-vaule 键值对数据,并且在插入、删除、遍历都有不错性能的数据结构。我们也知道,JDK...