
深入理解Java虚拟机
文章平均质量分 56
对jvm的自我总结
voilde
萌新
展开
-
类加载的时机与过程
类加载原创 2022-06-06 17:16:02 · 1508 阅读 · 0 评论 -
垃圾收集器与内存分配策略
垃圾收集器与内存分配策略原创 2022-06-06 16:36:37 · 82 阅读 · 0 评论 -
如何判断对象已死?
jvm判断对象已死原创 2022-06-06 13:59:27 · 112 阅读 · 0 评论 -
对象的创建与内存分配
1、对象的创建 Java虚拟机遇到一条字节码new指令时,首先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否被加载、解析、初始化过,如果没有则进行类加载。加载完之后为对象进行内存分配。 2、内存分配 内存分配有两种方式 2.1、指针碰撞 假设Java堆中内存是绝对规整的,所有被使用过的内存被放在一边,空闲的内存被放在另一边,中间有一个指针作为分界点的指示器。这样分配内存,就是把指针向空闲位置挪动与对象大小相等的距离,这种分配方式叫做指针碰撞。 2.2原创 2022-02-13 12:22:27 · 522 阅读 · 0 评论 -
运行时数据区
运行时数据区包括如下几个区域(灰色为所有线程共享区域)。 1、程序计数器 通过改变计数器的值来选取下一条需要执行的字节码指令 它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能,都需要依赖这个计数器来完成。 2、虚拟机栈 每个方法被执行的时候,Java虚拟机都会同步创建一个栈帧,用来存储局部变量表、操作数、动态连接、方法出口等信息。一个方法的调用到被执行完的过程,就对应着一个栈帧在虚拟机中从入栈到出栈的过程。 3、本地方法栈 本地方法栈与虚拟机方法栈作用类似,虚拟机栈为原创 2022-02-13 11:50:31 · 392 阅读 · 0 评论