并行收集器 发表于 2020-11-15 更新于 2020-11-20 分类于 JVM 本文字数: 561 阅读时长 ≈ 1 分钟 并行收集器(新生代) ParNew(并行)收集器:使用多线程进行垃圾回收,在垃圾收集时,会Stop-the-World . 阅读全文 »
引用分类 发表于 2020-11-15 更新于 2020-11-20 分类于 JVM 本文字数: 282 阅读时长 ≈ 1 分钟 引用分类有人引用这块空间那么不是垃圾,没人引用那么就属于垃圾。 强引用:类似于Object a = new A() 这样的,不会被回收。 阅读全文 »
指令重排原理和规则 发表于 2020-11-15 更新于 2020-11-20 分类于 JVM 本文字数: 491 阅读时长 ≈ 1 分钟 指令重排原理和规则指令重排:指的是JVM为了优化,在条件允许的情况下,对指令进行一定的重新排列,直接运行当前能够立即执行的后续指令,避开获取下一条指令所需的数据造成的等待。 阅读全文 »
未命名 发表于 2020-11-15 更新于 2020-11-20 分类于 JVM 本文字数: 304 阅读时长 ≈ 1 分钟 操作数栈操作数栈:用来存放方法运行期间,各个指令操作的数据。 操作数栈中元素的数据类型必须和字节码指令的顺序严格匹配 虚拟机在实现栈帧的时候可能会做一些优化,让两个栈帧出现部分重叠区域,以存放公用的数据 阅读全文 »
栈帧和局部变量表 发表于 2020-11-15 更新于 2020-11-20 分类于 JVM 本文字数: 751 阅读时长 ≈ 1 分钟 栈帧和局部变量表 字节码执行引擎 栈帧、运行期操作数栈和局部变量表之间的交换关系 方法调用、静态分派和动态分派 阅读全文 »
类加载和类加载器 发表于 2020-11-15 更新于 2020-11-20 分类于 JVM 本文字数: 1.2k 阅读时长 ≈ 1 分钟 类加载和类加载器类加载、连接和初始化 理解类从加载、连接、初始化到卸载的生命周期 理解类加载、类加载器、理解双亲委派模型 理解并掌握各种主动使用类的初始化时机 阅读全文 »
类的主动初始化 发表于 2020-11-15 更新于 2020-11-20 分类于 JVM 本文字数: 399 阅读时长 ≈ 1 分钟 类的主动初始化类的初始化时机 ❤:Java程序对类的使用方式分成:主动使用和被动使用,JVM必须在每个类或接口“首次主动使用”时才初始化它们;被动使用类不会导致类的初始化,主动使用的情况: 阅读全文 »
ZGC收集器 发表于 2020-11-15 更新于 2020-11-20 分类于 JVM 本文字数: 718 阅读时长 ≈ 1 分钟 ZGC收集器ZGC收集器:JDK11加入的具有实验性质的低延迟收集器 ZGC的设计目标:支持TB级内存容量,暂停时间低(< 10ms),对整个程序吞吐量的影响小于15% ZGC里面的技术:着色指针 和 读屏障 阅读全文 »
跨代引用 发表于 2020-11-15 更新于 2020-11-20 分类于 JVM 本文字数: 999 阅读时长 ≈ 1 分钟 跨代引用跨代应用:也就是一个代中的对象引用另一个代中的对象。 跨代引用假说:跨代引用相对于同代应用来说只是极少数 阅读全文 »
锁优化 发表于 2020-11-15 更新于 2020-11-20 分类于 JVM 本文字数: 861 阅读时长 ≈ 1 分钟 锁优化自旋锁与自适应自旋: 自旋:如果线程可以很快获得锁,那么可以不在OS层挂起线程,而是让线程做几个忙循环,那么就是自旋 自适应自旋:自旋的时间不再固定,而是由前一次在同一个锁上的自旋时间和锁的拥有者状态来决定 阅读全文 »