标签:LinkedHashMap

业余杂谈

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

herman 7个月前 (09-09) 2696浏览

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

JAVA

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

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

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

JAVA

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

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

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

JAVA

深入浅出LinkedHashMap原理和源码解读

herman 5年前 (2019-04-09) 2865浏览

最近,我知道有好几个同学会偶尔的阅读阅读我的博客。我倍感压力,他都是 CTO 级的人物,我经常向他们取经,膜拜他们。 这不最近,有一个同学公司里要搞培训,主讲人对 LinkedHashMap 讲的不够深,希望我有好文章推荐一下。既然这么说了,...

JAVA

手把手教你用LinkedHashMap打造FIFO和LRU缓存系统

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

对于缓存来说,我相信很多人都不会陌生。一般的,对于常用的一些数据,基础数据等,也或者是为了高并发,比如抢购等把热点数据放入缓存中以实现高并发快速响应。 说到缓存,Redis、memcached 等在面试中属于必问的知识点了。虽然这些专门的缓存...

JAVA

深度解读 Java 中的 equals()、==、hashCode()

herman 5年前 (2018-12-06) 2001浏览

一般我们重写 equal() 时也会重写 hashCode(),而且 equal() 也经常被拿来和 == 做比较,所以我今天把它们三者放一起来说! 写这篇文章的主要原因是我在做 code review 的时候,发现有同学在错误的使用 Ha...

JAVA

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

herman 5年前 (2018-11-20) 3281浏览

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

JAVA

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

herman 5年前 (2018-11-20) 2338浏览

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

JAVA

HashMap 存在的意义是什么?

herman 5年前 (2018-11-20) 3064浏览

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

JAVA

Java 程序员(CRUD程序员)为什么很少使用 LinkedList?

herman 6年前 (2018-11-10) 5173浏览

其实我不想写 LinkedList 的!为什么呢?因为它没什么好些的。简单用的也少,尤其是对 CRUD 程序员来说。那么本文就说说为什么它在 Java 中用的少! 一般的一个东西用的少,可能有几种情况。一种是封装的不好,不好用;二是,不懂如...

JAVA

Java HashMap 的死循环(HashMap Infinite Loop)

herman 6年前 (2018-06-17) 2381浏览 0评论

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Ja...

JAVA

详解 Java 中的 Iterable、Itetator、Enumeration

herman 6年前 (2018-05-01) 3354浏览 0评论

Java 中对一些集合循环遍历做了一些特殊的封装。一些是方便我们的操作,一些是存在存储性能等方面设计的。关于 Iterable、Itetator、Enumeration,我们一起来学习它们。 Iterable Iterable接口实现...