LonelyRookie Blog

Thinking will not overcome fear but action will.

IDEA编译Spring源码

IDEA编译Spring 5.2.x源码

IDEA编译Spring 5.2.x源码 参考:Spring 5.2.x 源码编译1 Spring 5.2.x 源码编译2 spring源码下载地址:github gitee gitee下载速度更快一点 编译环境: JDK:1.8.0_202 Gradle:5.6.4 IDEA:2019.3.5 Gradle版本是5.6.4,因为spring 5.2.x版本使用...

TreeSet

TreeSet

TreeSet TreeSet 约等于 TreeMap public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, java.io.Serializable TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。 T...

CopyOnWriteArrayList

CopyOnWriteArrayList

CopyOnWriteArrayList 复合操作需要程序自己控制线程安全 特性 public class CopyOnWriteArrayList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { 特性基本与arrayList一致,底层也是数组结构 基本属...

LinkedList

LinkedList

LinkedList 特性 public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable 1、继承于 AbstractSequentialList...

Vector

Vector

Vector public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable Vector中的操作是线程安全的。 Vector加synchronized锁后真的...

ArrayList

ArrayList

ArrayList ArrayList是线程不安全的 ArrayList和LinkedList对比? ArrayList底层是数组,查找快 LinkedList底层是链表,插入快 特性 实现了三个标记接口:RandomAccess, Cloneable, java.io.Serializable,它们内部都没有方法和属性 public class ArrayList<E&...

编译调试openjdk8

搭建openkdj8编译调试环境

编译openjdk8 编译环境 操作系统:Ubuntu16 boot jdk:jdk7(我用的是openjdk7) 编译的jdk:openjdk8 看源码工具:Clion 下载地址: ubuntu openjdk1.7 openjdk1.8 openjdk1.8源代码 以下编译openjdk的步骤只是其中之一。openjdk 解压后目录下有一个README-bu...

JVM之类加载的过程

类加载的过程

类加载的过程 类的生命周期是由7个阶段组成,但是类的加载说的是前5个阶段 加载 1、通过类的全限定名获取存储该类的class文件(没有指明必须从哪获取) 2、解析成运行时数据,即instanceKlass实例,存放在方法区 3、在堆区生成该类的Class对象,即instanceMirrorKlass实例 就是说你可以改写openjdk源码,你写的程序能达到这三个效果即可 J...

JVM之Klass模型

Klass模型

Klass模型 补充: OOP-Klass模型 OOP 指的是 Ordinary Object Pointer (普通对象指针),它用来表示对象的实例信息,看起来像个指针实际上是藏在指针里的对象。而 Klass 则包含元数据和方法信息,用来描述Java类。 klass是类 oop klass是类的内存地址(指针) Klass :包含元数据和方法信息,用来描述Java类。 cla...

Java8特性之Optional类使用

Optional类使用

前言 这周写代码遇到了一个很大的bug,怪自己学艺不精,无法认清of方法和ofNullable方法的使用,用错了这两个方法。出现了空指针异常。在这里必须记录一下该两个方法的区别。 简介 Optional类为了解决NullPointerException(NPE)问题,减少代码中的判空,实现函数式编程,给工程师们提供函数式的API。 我们平时在编码的时候需要不断的判断对象是否为空来做大...