
从零开始的源码分析
史上最弱万古流芳
这个作者很懒,什么都没留下…
展开
-
从零开始的源码分析(集合拾遗篇)
集合拾遗篇前言MapSetVector前言之前对一些常用的集合进行了源码阅读,但是没想到现在已经有大厂开始问LinkedHashMap的底层源码了。这也实在是太卷了吧,所以这篇文章主要对之前遗留的一些Set集合、Linked集合以及Vector集合的源码进行粗略的阅读。MapSetVector...原创 2020-07-20 22:06:59 · 218 阅读 · 0 评论 -
从零开始的源码分析(线程拾遗篇)
线程拾遗篇前言有返回值的线程CallableFutureTask继承和接口成员变量构造函数使用Condition同步工具CountDownLatchCyclicBarrier成员变量构造方法awaitSemaphore内部类构造方法前言这一篇主要是对之前多线程源码中遗漏的部分进行一个补充,主要包括:Callable和FutureTaskconditionCountDownLatch(闭锁)CyclicBarrier(栅栏)Semaphore(信号量)有返回值的线程Callable之前原创 2020-07-14 22:03:09 · 201 阅读 · 0 评论 -
从零开始的源码分析(队列篇)
队列篇前言PriorityQueue接口与继承成员变量插入和删除堆化和随机删除ArrayBlockingQueue继承和接口成员变量构造方法插入和删除LinkedBlockingQueue成员变量构造方法插入和删除后记前言没想到这个系列居然这么快就又开始了。感觉面试官可能更加喜欢看过源码的同学,所以我们还是投其所好,在源码的地方多下点功夫吧。今天这一篇是队列篇,算是之前留下来的一个坑,因为之前感觉Map和List问的多一些,所以就先总结了他们两个。但是这次面试被问到了是否看过优先队列的源码,很惭愧的原创 2020-07-13 22:24:14 · 574 阅读 · 0 评论 -
从零开始的源码分析(锁篇)
锁篇前言AQS源码分析成员变量内部类获取锁加入队列自旋获取锁判断是否需要挂起释放锁ReentrantLock前言这一篇主要探究一下关于ReentranLock的源码和AQS的部分源码,写完这一篇这个系列就暂时告一段落,明天是Redis的原理分析和实战,尽快在字节面试之前把所有的内容再学习一遍。AQS源码分析ReentranLock是基于AQS实现的,所以在学习ReentranLock之前,先来研究一下AQS的源码吧。AQS的全称是AbstractQueuedSynchronizer,从代码上面的注原创 2020-07-06 20:17:32 · 191 阅读 · 0 评论 -
从零开始的源码分析(线程池篇)
线程池篇前言源码继承和接口成员变量线程池核心参数线程池状态任务的执行者:worker构造方法线程工厂拒绝策略提交任务excutesubmitaddworker开始执行和结束执行runWorkergetTaskprocessWorkerExit线程池常见问题线程池有几种实现方式自己实现一个线程池总结前言本篇主要总结和分析一下线程池的源码。说是线程池,实际上是ThreadPoolExecutor,这主要还是因为《阿里巴巴Java开发手册》中强制要求线程池不允许Executors去创建,而是通过ThreadP原创 2020-07-04 19:56:14 · 191 阅读 · 0 评论 -
从零开始的源码分析(Thread篇)
Thread篇前言Thread源码接口成员变量线程状态和优先级构造函数start()和run()exit()yield()、wait()、sleep()和join()interrupt()ThreadLocal构造方法ThreadLocalMap类set方法get方法remove()后记前言今天约了招银的面试在10号早上,所以感觉需要加快一点进度了,接下来花两天时间搞定线程和线程池的内容,然后花一两天时间搞定锁这一块的源码,最后再把Mysql和Redis、JVM的相关内容复习一些,进行一个查漏补缺。T原创 2020-07-03 22:30:50 · 731 阅读 · 0 评论 -
从零开始的源码分析(Map篇)
Map篇从Map开始说起三个视图Entry抽象类AbstractMap成员变量内部类HashMap成员变量构造方法节点插入与扩容哈希扩容获取从Map开始说起按照惯例,我们还是看一下HashMap的类名,可以看到HashMap实现了Map接口和继承了AbstractMap抽象类。public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializa原创 2020-06-30 21:13:29 · 326 阅读 · 0 评论 -
从零开始的源码分析(LinkedList篇)
前言上一篇讲了ArrayList的源码,今天就来学习一下同样常用的LinkedList的源码。继承和实现我们首先还是从LinkedList的类名开始,LinkedList继承于AbstractSequentialList,并且实现了List接口和Deque接口,后面的Cloneable和java.io.Serializable表明这是一个可以被克隆和序列化的类。那么List接口我们很熟悉了,那么AbstractSequentialList抽象类和Deque接口又是什么呢?public class原创 2020-06-30 14:43:58 · 179 阅读 · 0 评论 -
从零开始的源码分析(ArrayList篇)
集合源码分析前言从迭代器开始说起以ArrayList的Iterator为例变量hasNext()next()removeforEachRemaining更强大的ListIterator回到集合List接口前言感觉Java集合是面试中必定会被问到的内容之一,所以这一次打算先把面试中必定会问的几个问题的源码搞明白。这系列文章主要参考大佬博客:Java 集合源码解析从迭代器开始说起迭代器其实使我们在平时使用的时候用的比较“少”的一个东西,一般当需要进行遍历的时候我们会写如下代码:for(int i=0原创 2020-06-24 20:50:00 · 414 阅读 · 0 评论