![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 95
JVM的基础知识
圆锥曲线丶
但愿吉祥
展开
-
JVM 类加载机制 详细学习笔记
类文件结构详解 比起看类文件结构,我们可以通过对.class文件进行反编译查看 javap -v 类名.class (对class文件进行反编译) 下面可以通过一个个简单的demo了解方法执行流程 下面是所展示的信息 常量池载入运行时常量池(属于方法区) 字节码放入方法区注意:当数的大小超过short类型的最大值时,它会存储在常量池中 下面局部变量大小为4,操作数栈大小为2 下面开始执行方法区......原创 2022-07-12 17:09:51 · 236 阅读 · 0 评论 -
JVM 垃圾回收 详细学习笔记
给对象中添加一个引用计数器,每当有一个地方引用它,计数器就加 1;当引用失效,计数器就减 1;任何时候计数器为 0 的对象就是不可能再被使用的。这个方法实现简单,效率高,但是目前主流的虚拟机中并没有选择这个算法来管理内存,其最主要的原因是它很难解决对象之间相互循环引用的问题。如下面代码所示:除了对象 objA 和 objB 相互引用着对方之外,这两个对象之间再无任何引用。但是他们因为互相引用对方,导致它们的引用计数器都不为 0,于是引用计数算法无法通知 GC 回收器回收他们。 这个算法的基本思想就是通过一系原创 2022-07-06 17:32:35 · 158 阅读 · 0 评论 -
JVM 内存结构 详细学习笔记
程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完成。总而言之,它是帮助线程记录下一条jvm指令的执行地址行号,如果没有程序计数器,那么jvm都不知道下一条该执行什么指令 此外,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各线程之间计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存。所以程序计数器原创 2022-07-05 23:00:05 · 224 阅读 · 0 评论