java虚拟机成神之路
文章平均质量分 82
ywhccc-
这个作者很懒,什么都没留下…
展开
-
java虚拟机成神之路 - 虚拟机字节码执行引擎
如果执⾏的是实例⽅法(没有被static修饰的⽅法),那局 部变量表中第0位索引的变量槽默认是⽤于传递⽅法所属对象实例的引⽤,在⽅法中可以 通过关键字“this”来访问到这个隐含的参数。“虚拟机”是一个相对于“物理机”的概念,这两种机 器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层 面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执 行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。原创 2023-09-21 20:54:50 · 31 阅读 · 0 评论 -
java虚拟机成神之路 - 虚拟机类加载机制
Java虚拟机把描述类的Class文件加载到内存,并对数据进行校验、转换解析和初始化,形成可以被虚拟机直接使用的Java类型,这个过程是虚拟机的类加载机制一个类型被加载到虚拟机的过程:加载、验证、准备、解析、初始化、使用和卸载。解析阶段是可以变化的。原创 2023-09-21 20:53:33 · 32 阅读 · 0 评论 -
java虚拟机成神之路 - 垃圾收集器与内存分配策略:
如何确定对象是否死亡:第一个为引用计数算法,对象被引用一次时计数就+1,引用失效时计数就减一,计数值为0时该对象已经死亡不能被使用。但是当两个不可能再被引用的对象互相引用时,就发生问题。现在主流的虚拟机几乎不适用引用计数算法来管理内存。第二个为可达性分析算法:从根节点GC Roots进行向下搜索,与之关联的都是存活对象,没搜索到的都是不可能再被使用的对象。GCRoots不可达的会被判定为可回收对象,当第二次。原创 2023-09-21 15:55:46 · 40 阅读 · 0 评论 -
java虚拟机成神之路 - JVM内存区域与内存溢出异常
类检查通过后加载对象的内存,假设内存是按区域划分的,空闲内存在指针的一边,使用过的内存在指针的另一边,挪动指针来分配内存大小,称为指针碰撞的方式。这个算法的基本思路就是通过 一系列称为“GC Roots”的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过 程所走过的路径称为“引用链”(Reference Chain),如果某个对象到GC Roots间没有任何引用链相连, 或者用图论的话来说就是从GC Roots到这个对象不可达时,则证明此对象是不可能再被使用的。**方法区**:线程共享。原创 2023-09-21 15:50:18 · 38 阅读 · 0 评论