JVM
文章平均质量分 85
JVM系列
xsx_only
静下心来才能知道自己的方向是否正确
展开
-
JVM基础储备
JVM从编译到执行Java程序的执行过程一个Java程序,首先经过javac编译成 .class 文件,然后JVM将其加载到方法区,执行引擎会执行这些字节码。执行时,会翻译成操作系统相应的函数。JVM作为 .class 文件的翻译存在,输入字节码,调用操作系统函数。过程如下:Java文件->编译器->字节码->机器码JVM、JRE、JDK的关系JVM只是一个翻译,把class翻译成机器识别的代码。开发伙伴在编写代码的时候,需要依赖的类库是在jre中,JVM标准加上实现的原创 2021-11-17 09:14:21 · 246 阅读 · 0 评论 -
JVM中垃圾回收机制及垃圾收集器详解
一、垃圾收集算法1.标记-清除算法最基础的收集算法是“标记-清除”(Mark-Sweep)算法,如同它的名字一样,算法分为“标记”和“清除”两个阶段。①首先标记出所有需要回收的对象②在标记完成后统一回收所有被标记的对象。不足:效率问题:标记和清除两个过程的效率都不高空间问题:标记清除之后产生大量不连续的内存碎片,空间碎片太多可能会导致以后程序运行过程中需要分配较大对象时...转载 2019-06-13 22:29:15 · 157 阅读 · 0 评论 -
Java虚拟机——对象的创建、内存布局和访问定位
一、对象的创建1. 虚拟机遇到一个new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用;2. 检查这个符号引用代表的类是否已经被加载,解析和初始化过。如果没有,那必须先执行响应类加载过程;3. 在类加载检查通过以后,为新生对象分配内存。对象所需要的内存大小在类加载完成之后可以完全确定。二、对象的内存布局分为3个区域:对象头,实例数据,对齐填充对象头...原创 2019-05-09 22:31:35 · 132 阅读 · 0 评论 -
Java内存区域与内存模型
一、Java内存区域方法区(公有):用户存储已被虚拟机加载的类信息,常量,静态常量,即时编译器编译后的代码等数据。异常状态OutOfMemoryError其中包括常量池:用户存放编译器生成的各种字面量和符号引用。堆(公有):是JVM所管理的内存中最大的一块。唯一目的就是存放实例对象,几乎所有的对象实例都在这里分配。Java堆是垃圾收集器管理的主要区域,因此很多时候也被称为“GC堆”。异...转载 2019-05-09 21:13:44 · 91 阅读 · 0 评论