06 2022 档案
摘要:虚拟机栈概述 虚拟机栈出现的背景 由于跨平台性设计,Java的指令都是根据栈来设计的。不同平台的CPU架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。 内存中的栈和堆 展示运行时的单位,而堆是存储的单位。即栈解决程序的运行
阅读全文
摘要:JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能运行。 这里并非是广义上所指的物理寄存器,或许将其翻译为PC计数器(或指令计数器)会更加贴切(也称为程序钩子),并且也
阅读全文
摘要:内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。结合JVM虚拟机规范,来探讨一下经典的JVM内存布局。
阅读全文
摘要:虚拟机结构图 类加载器子系统作用 类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。 加载的类信息存放于一块称为方法区的内存空间。除了类
阅读全文
摘要:JVM整体结构 HotSpot VM是目前市面上高性能虚拟机的代表作之一。 它采用解释器与即使编译器并存的架构 java代码执行流程 JVM架构模型 Java编译器输入的指令流基本上是一种基于栈的指令集架构,另外一种指令集架构则是基于寄存器的指令集架构 基于栈式架构的特点 设计和实现更简单,适用于资
阅读全文