
JVM虚拟机
codfishXY
机械转码
展开
-
Java-JVM复习03-GC
1. 判断对象是否可回收的算法 引用计数算法(Reference Counting) java不适用 在对象中添加一个引用计数器 对象被引用,计数器 +1 引用失效,计数器 -1 计数器 =0 时,可回收 优点:简单,回收效率高 缺陷:两个对象互相引用或者多个对象循环引用都会导致计数器永 ≠0 可达性分析算法(Reachability Analysis) GC Roots引用链能达到的对象不可回收 GC Roots不能达到的对象可回收 GC Roots 包括以下 局部变量表里的变量引用原创 2020-10-15 16:47:23 · 203 阅读 · 0 评论 -
Java-JVM复习02-运行时数据区
1. 运行时数据区结构 线程 JVM每个线程都与操作系统的本地线程直接映射,Java线程终止,本地线程回收 JVM启动后自动创建多个后台线程,虚拟机线程、周期任务线程、GC线程、编译线程、信号调度线程 多个线程共享堆区、元数据区的数据,每个线程私有本地方法栈、虚拟机栈、程序计数器的数据 2. 程序计数器 JVM中的程序计数器是对物理PC寄存器的一种抽象模拟 线程私有,每个线程都有自己的程序计数器 存储当前线程当前方法的指令地址,由执行引擎读取后选出需要解释的字节码 并发时线程之间要快速切换,程序计数原创 2020-10-12 17:23:08 · 358 阅读 · 0 评论 -
Java-JVM复习01-类加载机制
1. JVM 结构 2. JVM 类加载过程 加载 获取类的二进制字节流 将字节流的静态存储结构转化为方法区的运行时数据结构 在内存中生成java.lang.Class对象,作为这个类的访问入口 连接 验证:确保加载的字节流信息符合虚拟机要求 验证文件格式、元数据、字节码、符号引用 准备:在方法区中为基本类型变量分配内存空间 根据基本变量类型,设置其对应的默认初始值 显示初始化被final修饰的变量(final变量在编译阶段时已被分配) 解析:将常量池中的符号引用替换为直接引原创 2020-10-11 15:54:14 · 195 阅读 · 2 评论