《Java源码分析》系列
文章平均质量分 92
微信关注:Java编程之道
LeoByte.
唯有编程与自由不可辜负
展开
-
面试官再问你线程池,把这篇文章他。
记一次真实蚂蚁金服面试经历,这是鄙人在暑期找实习阶段遇到的社会主义爆锤!!!那年我还只是个懵懂的少年…今天分享给需要秋(春)招面试的你们,看你们能抗住几个问题。你要都抗住了…万字长文!!!一定要耐住看!看完血赚!线程池十二鞭面试官:你了解多线程吗?线程池呢?答:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。同时也可以快速响应前端,将耗...原创 2020-07-14 23:26:29 · 2300 阅读 · 0 评论 -
基于 JDK1.7 版本实现 HashMap
在JDK1.7中是用的“数组+单链表实现的HashMap”。前一篇我用了LinkedList+数组实现,其实本质上差不多,只是没有写扩容这一块的内容,今天来个原生的方式实现HashMap。首先思考几个问题?Hash冲突怎么解决?冲突的元素采用链表存储。HashMap扩容机制?因为如果不进行扩容,当发生hash冲突的时候会在某个位置不断向后生产新的节点。在查询的时候会遍历...原创 2019-03-13 11:19:25 · 2152 阅读 · 0 评论 -
一文带你手写 ArrayList 集合框架
接下来就是进入到对一些源码框架核心内容手写,我发现啊 ,手写框架源码后基本上对这个框架的内容都了解到了,并且印象更加深刻。首先简单回顾一下…你还记得List集合吗?List集合代表一个有序集合,集合中每个元素都有其对应的顺序索引。List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。List接口继承于Collection接口,它可以定义一个允许重复的有序集合。因为Li...原创 2019-03-06 14:13:07 · 1992 阅读 · 0 评论 -
十分钟带你分析 LinkedList 源码
LinkedList底层的数据结构是基于双向循环链表的,且头结点中不存放数据,既然是双向链表,那么必定存在一种数据结构——我们可以称之为节点,节点实例保存业务数据,前一个节点的位置信息和后一个节点位置信息。废话不多说,如果你有数据结构中关于链表的知识,那手写LinkedList根本不需要十分钟。源码就简单的罗列一下,其实源码就是用的链表的数据结构来实现的。LinkedList源码 t...原创 2019-03-07 16:52:21 · 1916 阅读 · 0 评论 -
每日手撕--LRU算法
LRU算法介绍LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。简单描述一下在《操作系统》这本书里面对于LRU算法的解说。假定系统为某进程分配了3个物理块,进程运行时的页面走向为 7 0 1 2 0 3 0 4,开始时3个物理块均为空,那么LRU 算法是如下工作的:这就是最基本的LRU的磁盘调度逻辑,该算法运用领域比较广泛比如Redis的内存淘汰策略等等,原创 2020-07-04 20:06:48 · 2460 阅读 · 0 评论 -
HashMap中对象作Key为什么要重写equals和hashcode
蜜汁 equals & hashcode哈哈!我摊牌了!阿里和美团的面试官都问过我同样的问题,你确定不了解一下?今天咱们唠点简单的,这是在初级开发及校招面试中经常问的一个问题。HashMap的key为一个对象的时候要注意什么 ?为什么要同时重写equals和hashcode方法 ?给你十秒钟想想你该怎么答… ⌚想不出来没关系,看了这篇文章后面试遇到同样的问题就是送分题。????什么是equals和hashcode方法我们知道Java中所有的类都继承于Object类原创 2020-07-04 20:05:02 · 5842 阅读 · 2 评论 -
Thread ThreadLocal ThreadLocalMap?蒙圈
先赞后看,养成习惯 ???? 欢迎微信关注[Java编程之道],每天进步一点点,沉淀技术分享知识。闲谈ThreadLocal前面在我的GitHub仓库 V-LoggingTool 中有简单的使用过ThreadLocal,主要用在了切面类中,功能上需要取到前置增强拦截到的用户信息暂存,执行到后置增强时从该ThreadLocal中取出用户信息并使用。今天咱们就唠唠ThreadLocal的相关知识,了解一下他的数据结构、用法、原理等。咱们层层深入…看了网上不少关于ThreadLocal的讲解,源码原创 2020-07-04 20:01:09 · 2308 阅读 · 2 评论