![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 84
zkyCoder
这个作者很懒,什么都没留下…
展开
-
JVM类加载机制
类加载机制类是在运行期间第一次使用时动态加载的,而不是一次性加载所有类。因为如果一次性加载,那么会占用很多的内存。JVM类加载过程分为五个部分:加载、验证、准备、解析、初始化。加载加载只是类加载的其中一个阶段,不表示整个类加载。加载的主要过程:通过类的完全限定名称获取定义该类的二进制字节流。将该字节流表示的静态存储结构转换为方法区的运行时存储结构。在堆中生成一个代表该类的 Class 对象,作为方法区中该类各种数据的访问入口。可以看到下面这张图,加载过程把类的字节码放到了方法区,使用转载 2022-04-11 23:52:14 · 5892 阅读 · 0 评论 -
JVM垃圾回收
垃圾回收垃圾回收主要是针对堆和方法区进行。程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后就会消失,因此不需要对这三个区域进行垃圾回收。判断一个对象是否可被回收1. 引用计数算法为对象添加一个引用计数器,当对象增加一个引用时计数器加 1,引用失效时计数器减 1。引用计数为 0 的对象可被回收。在两个对象出现循环引用的情况下,此时引用计数器永远不为 0,导致无法对它们进行回收。正是因为循环引用的存在,因此 Java 虚拟机不使用引用计数算法。publ转载 2022-04-10 22:20:36 · 1040 阅读 · 0 评论 -
JVM内存结构
JVM内存结构JVM的内存结构大致分为五个部分,分别是程序计数器、虚拟机栈、本地方法栈、堆和方法区。除此之外,还有由堆中引用的JVM外的直接内存。下面将展开讲解这五个部分。程序计数器程序计数器(Program Counter Register),用于记录下一条JVM指令的执行地址(如果正在执行的是本地方法则为空)。例如下图中的JVM指令,当我执行到地址为0的指令时,程序计数器就会存下下一条指令的地址,也就是地址3。要注意的是,程序计数器时线程私有的,每一个线程都有一个程序计数器,只有这么设计,原创 2022-04-07 14:55:03 · 14097 阅读 · 3 评论 -
JVM概述
JVMJVM指的是Java Virtual Machine,即Java虚拟机,它是Java二进制字节码的运行环境。JVM的优势:JVM使得Java程序的字节码文件能够跨平台运行,正所谓一次编写,到处运行。拥有自动内存管理和垃圾回收功能。有数组下标越界检查功能。使用虚方法表的机制实现了多态。JVM, JRE, JDK三者关系JVM(Java Virtual Machine):JVM只认识.class文件,能将class文件中的字节码指令识别并调用操作系统向上的 API 完成动作。所以说,J原创 2022-04-06 20:56:45 · 382 阅读 · 0 评论