前言 上篇文章介绍了 HashMap 源码后,在博客平台广受好评,让本来己经不打算更新这个系列的我,仿佛被打了一顿鸡血.真的,被读者认可的感觉,就是这么奇妙. 然后,有读者希望我能出一版 ConcurrentHashMap 的解析.所以,今天的这篇文章,我准备讲述一下 ConcurrentHashMap 分别在JDK1.7和 JDK1.8 的源码.文章较长,建议小伙伴们可以先收藏再看哦~ 说一下为什么我要把源码解析写的这么详细吧.一方面,可以记录下当时自己的思考过程,也方便后续自己复习翻阅:另一…
Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底层原理,图文并茂,突破学习及面试瓶颈. 楔子-JVM内存结构补充 在上篇<JVM之内存结构详解>中有些内容我们没有讲,本篇结合垃圾回收机制来一起学习.还记得JVM中堆的结构图吗? 图中展示了堆中三个区域:Eden.From Survivor.To Survivor.从图中可以也可以看到它们的大小比例,准确来说是:8:1:1.为什么要这样设计呢,本篇文章后续会给出解答,还是根据垃圾回收的具体情况来设计的.…
如果Java虚拟机中标记清除算法.标记整理算法.复制算法.分代算法这些属于GC收集算法中的方法论,那么"GC收集器"则是这些方法论的具体实现. 在面试过程中这个深度的问题涉及的比较少,但对于理解上面的这些算法有很好的帮助.如果能够如数家珍,也是面试中的加分项,还是那句话,毕竟面试官的时间也不多了. 概念准备 在学习Java GC收集器之前,需要先了解一些内容和概念,首先如果没有学习<面试官,不要再问我"Java GC垃圾回收机制"了>的可先学习该篇文章,…
关于Java虚拟机类加载机制往往有两方面的面试题:根据程序判断输出结果和讲讲虚拟机类加载机制的流程.其实这两类题本质上都是考察面试者对Java虚拟机类加载机制的了解. 面试题试水 现在有这样一道判断程序输出结果的面试题,先看看打印的结果是什么? public class SuperClass { static { System.out.println("SuperClass static init"); } public static String ABC = "abc&qu…
关于Java虚拟机类加载机制往往有两方面的 面试题:根据程序判断输出结果和讲讲虚拟机类加载机制的流程.其实这两类题本质上都是考察面试者对Java虚拟机类加载机制的了解. 面试题试水 现在有这样一道判断程序输出结果的面试题,先 看看打印的结果是什么? public class SuperClass { static { System.out.println("SuperClass static init"); } public static String ABC = "abc&…
如果Java虚拟机中标记清除算法.标记整理算法.复制算法.分代算法这些属于GC收集算法中的方法论,那么"GC收集器"则是这些方法论的具体实现. 在 面试过程中这个深度的问题涉及的比较少,但对于理解上面的这些算法有很好的帮助.如果能够如数家珍,也是面试中的加分项,还是那句话,毕竟面试官的时间也不多了. 概念准备 在学习Java GC收集器之前,需要先了解一些内容和概念,首先如果没有学习<面试官,不要再问我"Java GC垃圾回收机制"了>的可先学习该篇文章…
本文首发于公众号:五分钟学大数据 在面试的时候,发现很多面试官特别爱问Kafka相关的问题,这也不难理解,谁让Kafka是大数据领域中消息队列的唯一王者,单机十万级别的吞吐量,毫秒级别的延迟,这种天生的分布式消息队列,谁能不爱? 在最近的一场面试中,有个面试官看到简历中的项目上写Kafka了,就直接开问Kafka,其他问题基本没问.下面来看下面试官的Kafka八连问: (以下答案是参考网上资料整理而成,实际面试时只回答了大约三分之一) 1. 为什么要使用 kafka? 缓冲和削峰:上游数据时有突…
在面试环节中,面试官很喜欢问一些特别的题目,这些题目有着特殊的解法,如果回答的巧妙往往能在面试中加分. 在这些题目中,位操作(Bit Operation)就是极具魅力的一种.今天,吴师兄就来分享 LeetCode 上几道跟 Bit Operation 有关的题目. 题目一: 位 1 的个数 LeetCode上第 191 号问题:编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数. 该题比较简单,解法有挺多,有位移法.位操作法.查表法.二次查表法等方法. 观察一下…
上一章我们讲了Redis的底层数据结构,不了解的人可能会有疑问:这个和平时用的五大对象有啥关系呢?这一章我们就主要解释他们所建立的联系. 看这个文件之前,如果对ziplist.skiplist.intset等数据结构不熟悉的话,建议先回顾一下上一章节:面试官:你看过Redis数据结构底层实现吗? 0. 五类对象分别是什么 五类对象就是我们常用的string.list.set.zset.hash 1. 为什么要有对象 我们平时主要是通过操作对象的api来操作redis,而不是通过它的调用它底层数据…
版权声明:本文为CSDN博主「夏雪冬日」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/hyg0811/article/details/102366854 三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题.很多小伙伴说这个问题刚开始回答的挺好,但是后面越回答越冒冷汗,最后就歇菜了. 见过比较典型的面试场景是这样的: 面试官:请介绍下三次握手 求职者:第一次握手就是…