月度归档: 2020年10月

4 篇文章

JVM3.2:虚拟机栈
虚拟机栈 虚拟机栈的背景 由于跨平台性的设计,java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 根据栈设计的优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。 内存中的堆与栈 栈是运行时的单位,而堆是存储的单位 1.栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。堆…
JVM3.1:PC寄存器
PC寄存器 JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟。 一个线程对应一个 JVM Stack。JVM Stack 中包含一组 Stack Fram…
JVM2:类加载子系统
JVM细节版架构图 注: BootStrapClassLoader:引导类加载器 ExtensionClassLoader:扩展类加载器 ApplicationClassLoader:系统类加载器 本文针对Class Loader SubSystem这一块展开讲解类加载子系统的工作流程 类加载子系统作用 1.类加载子系统负责从文件系统或者网络中加载…
JVM1:JVM 和 Java 体系架构
JVM作用 JVM是运行在操作系统之上的,并没有和硬件有直接的交互 Java代码一次编译,到处运行 JVM架构 方法区(永久代)在jdk8中又叫做元空间(Metaspace) 方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器(JIT编译器,英文写作Just-In-Time Compiler)编译后的代码等数据。 虽然Java虚拟机规…