前言
哈喽,大家好,我是 DanMu。这篇文章想和大家聊聊 ConcurrentHashMap 相关的知识点。严格来说,ConcurrentHashMap 属于java.lang.current
,并属于通常意义上的容器,但是考虑到面试官非常喜欢打出 HashMap 和 ConcurrentHashMap 这套丝滑小连招,因此我决定将它们放在一起,来加深大家的印象,发车!
Stay Hungry Stay Hoolish
哈喽,大家好,我是 DanMu。这篇文章想和大家聊聊 ConcurrentHashMap 相关的知识点。严格来说,ConcurrentHashMap 属于java.lang.current
,并属于通常意义上的容器,但是考虑到面试官非常喜欢打出 HashMap 和 ConcurrentHashMap 这套丝滑小连招,因此我决定将它们放在一起,来加深大家的印象,发车!
JDK1.8 之前 HashMap 采用 数组和链表 结合的数据结构。如下图:
HashMap 将 key 的 hashCode 经过扰动函数处理过后得到 hash 值,然后通过
(n - 1) & hash
判断当前元素存放的位置(n 指的是数组的长度),如果当前位置存在元素的话,就判断该元素与要存入的元素的 hash 值以及 key 是否相同,如果相同的话,直接覆盖,不相同就通过拉链法解决冲突。
哈喽,大家好,我是 DanMu。在 Java 开发中,集合类对象绝对是被使用最频繁的对象之一。因此,深入了解集合类对象的底层数据结构和原理,选择合适的集合类型能够极大程度上的影响程序的性能。在本文中,将先对 Java 中的集合类对象做一个整体的梳理,在后续文章中对重要的集合对象进行具体分析。
在 Java 的集合体系中,由两个主要的根接口,Collection 和 Map,并再次基础上衍生出若干种不同的集合类型。
哈喽,大家好,我是 DanMu。ArrayList 是我们日常开发中不可避免要使用到的一个类,并且在面试过程中也是一个非常高频的知识点,这篇文章将深入分析 ArrayList 的底层原理,助你彻底掌握 ArrayList相关的知识点。
哈喽,大家好,我是 DanMu。鲁迅说过:一个程序员成熟的标志是一次优雅是删库。(鲁迅:这bi话我可没说过!) 作为程序员,在饱受各种奇葩需求的摧残之后,应该所有人都暗搓搓的在心里冒出过删库跑路的念头。但是你真的知道该如何才能优雅的删库跑路吗?
本文已收录于:https://github.com/danmuking/all-in-one(持续更新)
哈喽,大家好,我是 DanMu。今天想和大家聊聊 Java 中的泛型。
Java 泛型(Generics) 是 JDK 5 中引入的一个新特性。它允许我们通过预先定义模板,为多种不同的数据类型执行相同的逻辑,实现更好的代码复用。
Java 编译器实现了对泛型参数进行检测,并且运行我们通过泛型参数来指定传入的对象类型,比如ArrayList<Integer> list = new ArrayList<Integer>()
就指定了这个 ArrayList 中只能存放 Integer 对象,如果传入其他类型的对象就会报错。
哈喽,大家好,我是 DanMu。今天想和大家聊聊 Java 中的异常。异常处理是一种重要的概念,因为程序总是会出现各种意料之外的问题:有可能是逻辑错误,也可能某位小可爱想看一个练习了 null 年半的练习生跳舞,程序不可能永远正确运行。但是,我们也希望程序在出错之后可以继续运行,不能影响正常用户的使用。因此,我们需要一种机制,保证程序能够在出错后进行一定程度的处理后继续运行。
先来看看 Java 中的异常体系
本文已收录于:https://github.com/danmuking/all-in-one(持续更新)
哈喽,大家好,我是 DanMu。今天这边文章,想和大家聊聊有关字符串的问题,字符串似乎很简单,但其实字符串几乎在所有编程语言里都是个特殊的存在,因为不管是数量还是体积,字符串都是大多数应用中的重要组成。这篇文章就让我们深入理解一下字符串相关的知识点。
本文已收录于:https://github.com/danmuking/all-in-one(持续更新)
byte/8bit
、short/16bit
、int/32bit
、long/64bit
float/32bit
、double/64bit
char/16biy
boolean/1bit