![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JVM 基础
虚拟机基础部分
南京.
北漂的程序仔
展开
-
JVM 基础 (10) -- Java 内存模型
文章目录1. 硬件架构2. Java 线程和硬件处理器3. Java 内存模型1. JMM 和 Java 内存区域的异同2. 主内存与工作内存的数据存储类型3. 主内存与工作内存间的操作方式4. Java 内存模型和硬件架构的关系5. JMM 存在的必要性1. 原子性2. 可见性3. 有序性4. 指令重排5. JMM 提供的解决方案1. happens - before 原则6. 总结1. 硬件...原创 2020-04-14 21:25:13 · 195 阅读 · 0 评论 -
JVM 基础 (9) -- 虚拟机字节码执行引擎
文章目录1.1.原创 2020-04-14 12:13:08 · 165 阅读 · 0 评论 -
JVM 基础 (8) -- 类加载器和类加载机制
文章目录1. 双亲委派模型2. 打破双亲委派模型3. 类加载器4. 自定义类加载器5. 类加载机制1. 简介2. 类的生命周期3. 类加载的时机4. 类加载的过程1. 加载2. 验证1. 文件格式验证2. 元数据验证3. 字节码验证4. 符号引用验证5. 总结3. 准备4. 解析1. 类与接口的解析2. 字段解析3. 类方法解析4. 接口方法解析5. 初始化1. 双亲委派模型如果一个类加载器收...原创 2020-04-12 23:04:20 · 266 阅读 · 0 评论 -
JVM 基础 (7) -- 字节码文件详解
文章目录1. 字节码文件2. 字节码文件的结构1. magic2. version3. constant_pool1. 字节码文件中的特殊字符串1. 类的全限定名2. 描述符3. 特殊方法的方法名4. access_flag5. this_class6. super_class7. interfaces8. fields9. methods10. attributes3. 案例分析1. magic...原创 2020-04-06 02:08:06 · 587 阅读 · 0 评论 -
JVM基础 (6) -- G1 收集器详解
转载,略有修改文章目录1. 简介2. 总览1. 简介G1 的主要关注点在于达到可控的停顿时间,在这个基础上尽可能提高吞吐量,这一点非常重要。G1 被设计用来长期取代 CMS 收集器,和 CMS 相同的地方在于,它们都属于并发收集器,在大部分的收集阶段都不需要挂起应用程序。区别在于,G1 没有 CMS 的碎片化问题(或者说不那么严重),同时提供了更加可控的停顿时间。如果你的应用使用了较大的...原创 2020-04-04 22:39:06 · 1543 阅读 · 0 评论 -
JVM 基础 (5) -- 垃圾收集器
文章目录1. Serial 收集器2. Serial Old 收集器3. ParNew 收集器4. Parallel Scavenge 收集器5. Parallel Old 收集器6. CMS 收集器7. G1 收集器1. Serial 收集器Serial 收集器是一个单线程的垃圾收集器,也就是说它只会使用一条线程进行 GC,并且在垃圾收集的同时会暂停所有的用户线程直到 GC 结束,采用 复制...原创 2020-03-19 20:27:15 · 99 阅读 · 0 评论 -
JVM 基础 (4) -- System.gc()
文章目录1. System.gc() 的作用2. System.gc() 源码3. 如何保证 System.gc() 有效4. System.gc() 与 Runtime.getRuntime().gc() 的区别1. System.gc() 的作用System.gc() 的作用是建议虚拟机进行一次 Full GC,但是虚拟机可以拒绝这个 GC 请求。GC 线程是一种守护线程2. Sy...原创 2020-03-18 18:48:06 · 1598 阅读 · 0 评论 -
JVM 基础 (2) -- Java 中的四种引用
文章目录1. 强引用2. 软引用1. 强引用强引用就是指在程序代码之中普遍存在的,类似 Object obj = new Object() 这类的引用,只要强引用还存在,垃圾收集器永远不会回收掉被引用的对象,可以通过手动设置 obj = null; 来断开强引用public class StrongReferenceTest { public static int M = 1024*...原创 2020-03-18 11:36:19 · 81 阅读 · 0 评论 -
JVM 基础 (3) -- JVM 垃圾回收
文章目录1. Java 堆细讲1. Eden 空间2. Survivor 空间3. 新生代的垃圾收集4. 老年代的垃圾收集2. GC 类型3. 判断对象是否为垃圾的算法1. 引用计数法1. Java 堆细讲新生代和老年代的比例 = 1:3Eden 空间和 Survivor 空间的比例 = 8:1:11. Eden 空间这块内存区域是用来分配新创建的对象实例的,通常会有多个线程同时创建多...原创 2020-03-17 18:18:43 · 150 阅读 · 0 评论 -
JVM 基础 (1) -- Java 的内存结构
以黄小斜博文为主的学习总结文章目录1.简介1. 了解 JVM 内存有什么好处2. JVM 主要组成成分1.简介1. 了解 JVM 内存有什么好处所有的 Java 开发人员可能会遇到这样的困惑:我该为堆内存设置多大空间呢?OutOfMemoryError 的异常到底涉及到运行时数据区的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能问题,那么这些问题就会变的非常常见,了解 JVM 内存...原创 2020-03-16 11:55:43 · 703 阅读 · 0 评论