Java虚拟机
十四说四十、
一只努力搬砖的985小硕
展开
-
深入理解Java虚拟机 - 第八章 虚拟机字节码执行引擎
运行时栈帧结构 栈帧–是用于支持虚拟机进行方法调用和方法执行的数据结构,是虚拟机栈的栈元素,栈帧存储了 方法的局部变量表 在编译时大小已经确定 操作数栈 在编译期 栈的深度已经确定 动态连接 方法返回地址 每一个方法的调用都涉及到一个栈帧的在虚拟机里面出栈到入栈的过程。 局部变量表 是一个变量值的存储空间,主要存储方法参数,和方法内部定义的局部变量 存储 byte boolean char s...原创 2019-11-20 21:21:36 · 75 阅读 · 0 评论 -
深入理解Java虚拟机 - 第七章虚拟机类加载机制
类加载机制 虚拟机把描述类的数据从Class文件加载到内存中,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型 生命周期 加载,验证,准备,解析,初始化,使用和卸载 类加载的过程 加载 验证 准备 解析 初始化 1.加载 加载时类加载的一个阶段 加载过程完成以下三件事: 通过类的全限定名获取定义此类的二进制字节流 将这个字节流所代表的静态存储结构转化为方法区的运行时...原创 2019-11-19 22:25:19 · 135 阅读 · 0 评论 -
深入理解Java虚拟机 - 第2章 Java内存区域与内存溢出异常
二、Java内存区域 运行时数据区域 1.程序计数器 是一个比较小的内存空间。线程私有,可以被看作是当前线程所执行的字节码的行号指示器。 对于Java方法: 记录正在执行的虚拟机字节码指令的地址 对于Native方法: 如果正在执行的是本地方法则为空。 2.Java虚拟机栈 描述的是Java方法执行的内存模型,每个方法执行的时候同时会创建一个栈帧,保存着局部变量表,操作数栈,动态链接,...原创 2019-11-14 20:39:08 · 113 阅读 · 0 评论 -
深入理解Java虚拟机 - 第3章 垃圾收集器与内存分配策略
三、垃圾收集 程序计数器,虚拟机栈,本地方法栈不需要回收 Java堆,方法区需要回收内存 判断对象是否可以回收 1. 引用计数法 给对象添加一个引用计数器,每当一个地方引用他们,计数器就加一,引用失效就减一,任何时刻,计数器为0的对象是不能被使用的。Java 虚拟机不使用引用计数算法。 优点:实现简单,判定效率高 缺点: 解决不了相互循环引用的问题。 2. 可达性分析算法 通过一系列的GC R...原创 2019-11-13 23:49:50 · 143 阅读 · 0 评论