前言 先预先说明,我这边jdk的代码版本为1.8.0_11,同时,因为我直接在本地jdk源码上进行了部分修改、调试,所以,导致大家看到的我这边贴的代码,和大家的不太一样。 不过,我对源码进行修改、重构时,会保证和原始代码的功能、逻辑严格一致,更多时候,可能只是修改变量名,方便理解。 大家也知道,jd ...
分类:
编程语言 时间:
2020-06-07 23:01:01
阅读次数:
99
编译的是jdk15,需要安装一个jdk14来作为bootstrap JDK,源码编译要求的bootstrap jdk 版本最少14,15 第一步:下载jdk源码 没有使用hg去下载,使用了git仓库代码 https://github.com/openjdk/jdk.git 克隆仓库代码 git cl ...
分类:
系统相关 时间:
2020-06-04 01:49:53
阅读次数:
98
前面一篇文章中说明了Object的阻塞唤醒机制,今天我们要讲解另一个类LockSupport,在AQS中你能看见它的身影,所以需要提前了解其实现和使用机制,便于后面深入AQS的学习 ...
分类:
其他好文 时间:
2020-05-10 12:32:35
阅读次数:
58
支付宝高级Java一面 JVM中的老年代在什么情况下会触发GC? CMS的垃圾回收步骤,G1和CMS的区别? CMS哪个阶段是并发的,哪个阶段是串行的? 谈谈Java线程池,线程池中几个参数含义 谈谈你了解的J.U.C包的JDK源码(CAS、AQS、ConcurrentHashMap、ThreadL ...
分类:
编程语言 时间:
2020-05-07 15:41:53
阅读次数:
100
Connection接口继承 Iterable,它的主要子类有List接口与Set接口 继承图如下: 据JDK源码,可知Connection接口的常用的抽象方法有: (1)获取集合长度: int size(); (2)判断集合是否为空: boolean isEmpty(); (3)判断集合是否含有某 ...
分类:
其他好文 时间:
2020-04-20 23:58:29
阅读次数:
124
一、前言 这篇博客来分析一下 的实现原理以及常见问题,由于现在时间比较晚了,我就不废话了,直接进入正题。 二、正文 2.1 ThreadLocal是什么 在讲实现原理之前,我先来简单的说一说 是什么。 被称作 线程局部变量 ,当我们定义了一个 变量,所有的线程共同使用这个变量,但是对于每一个线程来说 ...
分类:
其他好文 时间:
2020-04-16 16:54:18
阅读次数:
73
一 概述 HashMap实现 hashmap继承了AbstractMap,实现了Map接口和Cloneable接口,HashMap是基于哈希表(散列表),实现Map接口的双列集合 jdk8中底层数据结构已经改为二叉树,之前是链表 看hashmap之前,需要把Map,AbstractMap源码撸一遍, ...
分类:
其他好文 时间:
2020-04-14 20:24:43
阅读次数:
52
```java /* * Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEAD... ...
分类:
其他好文 时间:
2020-04-10 19:55:15
阅读次数:
62
从今天开始从源码去学习一些Java的常用数据结构,打好基础:) Arraylist源码阅读: jdk版本:1.8.0 首先看其构造方法: 构造方法一: 第一种支持初始化容量大小,其中声明一个对象数组,赋值给this.elementdata 构造方法二: 第二种无参构造函数,即不指定初始容量大小,则默 ...
分类:
其他好文 时间:
2020-04-10 00:53:27
阅读次数:
73
目录 JDK的Atomic原子操作类实现机制 通过JDK源码,品AtomicXXXFieldUpdater原子更新器及其优势 品Netty源码,学习原子更新的最佳实现方式 本篇文章大概3300字,阅读时间大约15分钟 如果仔细阅读过Netty的线程调度模型的源码,或者NIO线程对象及其线程池的创建源 ...
分类:
其他好文 时间:
2020-04-07 09:33:54
阅读次数:
92