深入理解JVM虚拟机
eulers
Java全栈工程师。小舟从此逝,江海寄余生。
展开
-
深入理解JVM虚拟机-读书笔记【一】自己编译openjdk源码
1、下载地址各版本下载页面:https://jdk.java.net/jdk8下载页面:https://jdk.java.net/java-se-ri/8在栏目RI Source Code下获取下载链接:https://download.java.net/openjdk/jdk8u40/ri/openjdk-8u40-src-b25-10_feb_2015.zip各版本下载地...原创 2019-03-09 15:04:33 · 992 阅读 · 0 评论 -
深入理解JVM虚拟机-读书笔记【二】HotSpot虚拟机
1、HotSpot编译目标和级别product:产品级别fastdebug:快速调试级别debug:调试级别optimized:优化级别COMMON_VM_PRODUCT_TARGETS=product product1 docs export_productCOMMON_VM_FASTDEBUG_TARGETS=fastdebug fastdebug1 docs expo...原创 2019-03-09 15:43:39 · 263 阅读 · 0 评论 -
深入理解JVM虚拟机-读书笔记【三】运行时数据区域
具体可参考官方《java虚拟机标准》:https://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf1、运行时数据区划分2、程序计数器(Program Counter Register)The Java Virtual Machine can support many threads of execution at once ...原创 2019-03-10 13:07:58 · 435 阅读 · 0 评论 -
深入理解JVM虚拟机-读书笔记【四】一段代码在内存中的执行过程
说明:个人对java程序执行过程中的顺序的理解原创 2019-03-10 13:36:21 · 150 阅读 · 0 评论 -
深入理解JVM虚拟机-读书笔记【五】OutOfMemoryError模拟实战
1、堆溢出Java heap space/** * 添加参数,限制堆动态扩展: -Xms20m -Xmx20m */public class HeapOut{ static class OOMObject { } public static void main(String[] args) { List<OOMObject>...原创 2019-03-10 19:29:34 · 145 阅读 · 0 评论 -
深入理解JVM虚拟机-读书笔记【六】垃圾回收之判定对象可回收
1、引用计数法算法:每当有一个地方引用对象时,则计数器加1。引用失效时,计数器减1。计数器为0的对象不可能再被引用。问题:无法解决循环引用时的引用问题。如:public class ObjectTest { public ObjectTest instance = null; public static void main(String[] args) { ...原创 2019-03-10 19:54:31 · 120 阅读 · 0 评论 -
深入理解JVM虚拟机-读书笔记【七】垃圾回收算法
1、标记-清除算法算法:第一步标记需要被清除的对象,第二步回收已标注的对象空间问题:标记步骤、清除步骤算法效率并不高。清除后的空间不连续,碎片比较多,对后期分配大空间的对象造成问题。2、复制算法算法:将内存区域划分成大小相等两部分,当内存将用完了就进行复制,将依旧有用的对象复制到没有使用的块上连续存放。然后一次性清理掉已使用部分的空间。实现简单,运行高效。问题:内存只能使...原创 2019-03-10 20:21:05 · 125 阅读 · 0 评论