
源码系列-jdk源码
徐传良
日拱一卒
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LinkedList源码解析
LinkedList源码实际上不算复杂,底层使用了内部类Node,每个Node存储了当前节点数据,直接前驱和直接后继的引用,也就是双向链表;同时LinkedList实现了Deque接口,也就是实现了双端队列相关操作api:public class LinkedList{ transient int size = 0; /** * 记录第一个节点的索引 */ transient MyLinkedList.Node<E> first;原创 2020-07-03 10:42:35 · 200 阅读 · 0 评论 -
ArrayList关键代码解析
以下代码是ArrayList中关键扩容代码解释public class ArrayList{ /** * 默认初始化数组容量:10 */ private static final int DEFAULT_CAPACITY = 10; /** * 空数组(用于空实例),在实例化时如果传入的list长度为0,当调用new ArrayList(0)时,即传入的数组长度为0时,会默认 elementData=EMPTY_ELEMENTDATA .原创 2020-07-03 09:46:01 · 217 阅读 · 0 评论 -
ConcurrentHashMap实现原理及源码分析(转载)
https://www.cnblogs.com/chengxiao/p/6842045.html---搬运工转载 2020-06-24 17:08:48 · 179 阅读 · 0 评论 -
HashMap实现原理及源码分析(转载)
https://www.cnblogs.com/chengxiao/p/6059914.html----搬运工转载 2020-06-24 17:06:40 · 172 阅读 · 0 评论 -
手写动态代理--模仿jdk动态代理
为了便于理解jdk动态代理,模仿jdk动态代理的思路,模拟写一个动态代理demo,思路如下:拼接代理对象源码,使用文件流写出$Proxy.java文件 将$Proxy.java动态编译成.class文件 $Proxy.class文件动态加载到JVM内存中,产生Class对象 使用反射构造出代理对象 用户调用代理对象实现方法代理源码如下:定义接口package com.ant.myJdkProxy;/** * 接口,模拟有无返回值、有无参数多种情况方法 */public in原创 2020-06-14 11:32:56 · 192 阅读 · 0 评论 -
ArrayList扩容机制源码跟进解析
package com.diagrammatize;import java.util.ArrayList;public class ArrayListMain { public static void main(String[] args) { ArrayList arrayList = new ArrayList(); arrayList.add("1"); arrayList.add("2"); arrayList.add.原创 2020-05-18 10:39:07 · 225 阅读 · 0 评论