
jvm
文章平均质量分 92
韩建鑫院长
日拱一卒
展开
-
垃圾收集算法和垃圾收集器
垃圾收集算法分代收集理论分代收集就是根据对象在各个年代内存分配的策略和对象的存活周期来选择对应年代的收集算法,如年轻代中的对象朝生夕死,我们则可以选择复制算法以空间换时间去收集,老年代中的对象大多是老顽固,收集一次可能并没有多少对象要被回收,那这种情况下采用复制算法有点浪费空间且效率低,再者老年代没有别的年代为他进行分配担保,所以我们采用标记清楚或标记整理算法。 复制算法 标记清除算法 标记整理算法 垃圾收集器 serial收集器(-XX:+UseSerial..原创 2021-04-23 10:11:39 · 186 阅读 · 0 评论 -
JVM整体结构
JVM之前阅读过《深入理解java虚拟机》这本书,也系统总结过关于JVM的一些基础知识,所以这篇文章不会再重复那些内容,只记录一些之前没关注到的内容或难以理解的内容。虚拟机栈(线程栈)虚拟机栈中有局部变量表、操作数栈、动态链接、方法出口等信息。局部变量表用于存放线程中的基本数据类型和对象引用。操作数栈用于存储方法中的一些操作数,用完就会被回收。上图表示的是main方法运行时jvm虚拟机中关于main方法线程中栈帧的布局和操作数的运算过程。对象的内存分配及GC...原创 2021-04-22 18:22:14 · 248 阅读 · 0 评论 -
类加载机制
类加载是什么?首先,java之所以是跨平台的语言是因为我们编写好java文件后,java文件会被编译成.class文件,也就是字节码文件,字节码文件可以在任何平台通过java虚拟机来运行。java虚拟机怎么运行字节码文件的呢?其实也就是类怎么被加载的。在java中有类加载器的概念,其实类加载器也不过是功能为加载其他类的类。类加载器会将.class文件转化成二进制字节流存入运行时数据区的方法区中,并在堆中创建一个class对象,用于封装类在方法区内的数据结构。什么时候会启动类加载器?当我们在A类的原创 2021-04-22 15:53:54 · 277 阅读 · 0 评论 -
知识总结——JVM
内存区域Java虚拟机在执行Java程序的过程中把它管理的内存划分为若干个不同的数据区。 程序计数器:当前线程所执行的字节码的行号指示器,字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖它;多线程场景下,程序计数器用于记录本线程执行位置情况,方便下次切换回来继续执行。此区域是唯一一个不会出现OutOfMemoryError的区域,生命周期随线程 虚拟机栈:生命周期跟线程一样,描述的是Java方法执行的原创 2020-08-11 18:03:09 · 158 阅读 · 0 评论