JVM-005-运行时数据区-虚拟机栈

概述

官方:https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5.2

背景

由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。

优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。

阅读更多
JVM-002-类加载子系统

JVM-002-类加载子系统

介绍

  • 类加载器子系统负责从文件系统或者网络中加载 Class 文件,class 文件在文件开头有特定的文件标识。
  • ClassLoader 只负责 class 文件的加载,至于它是否可以运行,则有 ExecutionEngine 决定。
  • 加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息。可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)。
阅读更多
JVM-001-整体介绍