JVM相关知识点
2021-04-25 17:35:01 0 举报
AI智能生成
JAVA JVM 相关知识点
作者其他创作
大纲/内容
JVM相关知识点
JVM的主要组成
类加载器
把 Java 代码转换成字节码
启动类加载器
负责加载存放在 JDK\\jre\\lib
扩展类加载
负责加载 DK\\jre\\lib\\ext
应用程序类加载器
负责加载用户类路径(ClassPath)所指定的类
运行时内存空间
程序计数器
当前线程所执行的字节码的行号指示器
Java虚拟机栈
用于存储局部变量表、操作数栈、动态链接、方法出口等信息
本地方法栈
虚拟机栈是服务 Java 方法的,而本地方法栈是为虚拟机调用 Native 方法服务的
Java 堆
Java 虚拟机中内存最大的一块,是被所有线程共享的,几乎所有的对象实例都在这里分配内存
新生代
Eden
Survivor
from Survivor
to Survivor
老生代
方法区
存储已被虚拟机加载的类信息、常量、静态变量、即时编译后的代码等数据
执行引擎
将字节码翻译成底层系统指令
本地库接口
需要调用其他语言的本地库接口(Native Interface)来实现整个程序的功能
JVM垃圾回收
ChildTopic
虚拟机栈中引用的对象
方法区类静态属性引用的对象
方法区常量池引用的对象
本地方法栈 JNI 引用的对象
GC两种判定方法
引用计数法
引用链法
通过一种 GC ROOT 的对象(方法区中静态变量引用的对象等-static 变 量)来判断,如果有一条链能够到达 GC ROOT 就说明,不能到达 GC ROOT 就说明 可以回收
GC回收算法
标记-清除算法
标记无用对象,然后进行清除回收。缺点:效率不高,无法清除垃圾碎片
标记-整理算法
标记无用对象,让所有存活的对象都向一端移动,然后直接清除掉端边界以外的内存
复制算法
按照容量划分二个大小相等的内存区域,当一块用完的时候将活着的对象复制到另一块上,然后再把已使用的内存空间一次清理掉。缺点:内存使用率不高,只有原来的一半
分代算法
根据对象存活周期的不同将内存划分为几块,一般是新生代和老年代,新生代基本采用复制算法,老年代采用标记整理或标记清楚算法
收藏
收藏
0 条评论
回复 删除
下一页