JVM
文章平均质量分 83
JVM学习笔记
想成为大牛的渣渣
这个作者很懒,什么都没留下…
展开
-
JVM——程序计数器(四)
程序计数器 JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关信息的现场信息。CPU只有把数据装载到寄存器才能够运行。这里,并非是广义上所指的物理寄存器,或许将其翻译为PC计数器(或指令计数器)会更加贴切(也称为程序钩子),并且也不容易引起一些不必要的误会。JVM中的PC寄存器是对物理PC寄存器一种抽象的模拟。 它是一块很小的内存空间,几乎可以忽略不计,但也是运行最快的存储区域。 在JVM规范中,每个线程都有它自己的原创 2021-08-25 16:27:30 · 213 阅读 · 0 评论 -
JVM——运行时数据区及概述(三)
运行时数据区 运行时数据区是在类加载完成后的阶段 当通过:类的加载->验证->解析->初始化,这几个阶段之后,就会用到执行引擎对类进行使用。同时执行引擎会使用到运行时数据区。 内存是非常重要的系统资源,是硬盘及CPU的中间仓库以及桥梁,承载着操作系统和应用程序的实时运行JVM内存布局规定了Java在运行过程中内存申请,分配,管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。 我们通过磁盘或者网络IO得到数据,都需要先加载到内存中,然后CP原创 2021-08-25 11:14:00 · 72 阅读 · 0 评论 -
JVM——类加载子系统(二)
概述 完整图如下: 如果想手写一个虚拟机的话: 需要考虑以下部分:类加载器,执行引擎 类加载子系统的作用 类加载子系统负责从文件或者网络中加载class文件,class文件在开头有特定的文件标识。ClassLoader只负责class文件的加载,至于他是否可以执行,则由Execution Engine决定。 加载的类信息存放于一块称为方法区的内存空间。除了类的信息之外,方法区还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射) class原创 2021-08-24 14:49:43 · 67 阅读 · 0 评论 -
JVM——JVM与java体系结构(一)
Java体系结构 JVM整体结构 HotSpot VM是目前市面上高性能虚拟机的代表作之一 它采用解释器与及时编译器并存的架构 执行引擎包含三部分:解释器,及时编译器,垃圾回收器 Java代码的执行流程 只能被Java虚拟机所能解释的字节码文件,就可以自己设计一套代码 JVM的架构模型 Java编译器输入的指令流基本是一种基于栈的指令集架构,另一种指令集架构是基于寄存器的指令集架构。 基于栈的指令集架构: 设计和实现更简单,适用于资源受限的系统。 避开了寄存器的分配难题:使用零地址指令方式分配 指令原创 2021-08-22 16:53:11 · 96 阅读 · 0 评论