![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
深入理解JVM
文章平均质量分 93
深入理解JVM源码
深夜面包
这个作者很懒,什么都没留下…
展开
-
垃圾收集算法&垃圾收集器&三色标记
垃圾收集算法&垃圾收集器&三色标记 1、垃圾收集算法 分代收集理论 当前虚拟机的垃圾收集都采用分代收集算法,根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代,根据各个年代的特点选择合适的垃圾收集算法。 新生代中,每次收集都会有大量对象(近99%)死去,所以可以选择复制算法,只需要付出少量对象的复制成本就可以完成每次垃圾收集。而老年代的对象存活几率是比较高的,而且没有额外的空间对它进行分配担保,所以我们必须选择“标记-清除”或“标记-整理”算法进行垃圾收集。注意原创 2022-04-27 17:17:56 · 310 阅读 · 0 评论 -
三、理解JVM对象的创建与内存分配机制
三、理解JVM对象的创建与内存分配机制 1、对象的创建 对象创建的主要流程 类加载检查 虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 分配内存 在类加载检查通过后,虚拟机将为新生对象分配内存。对象所需内存的大小在类加载完成后可以确定,为对象分配空间就是把 一块确定大小的内存从Java堆中划分出来。 分配内存需要注意的两个问题:原创 2022-04-20 14:58:21 · 817 阅读 · 0 评论 -
二、JVM内存模型及内存参数设置
二、JVM内存模型 1、Java语言跨平台特性 java程序主要通过JVM来实现跨平台的,JVM编译器将Java源代码文件编译成字节码文件(一次编译,随处运行),然后不同的操作系统生成的机器码不同,但是JVM运行是相同的,JVM解释器将字节码文件转换为机器可执行的二进制机器码 2、JVM内存模型 jvm包含两个子系统为类装载子系统和字节码执行引擎。两个组件为运行时数据区和本地接口。 类装载子系统:根据给定的全限定名类名(如:java.lang.Object来装载Class文件到Runtimedat原创 2022-03-29 16:46:07 · 1496 阅读 · 0 评论 -
一、 JVM类加载机制、双亲委派机制
一、 JVM类加载机制 1、类加载运行全过程 当运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到 JVM。 loadClass的类加载过程 加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载 加载:在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的main()方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作原创 2022-03-23 18:01:31 · 343 阅读 · 1 评论