java虚拟机的基本结构:
类加载子系统: 负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间
java堆 : 虚拟机启动的时候建立,它是java程序最主要的内存工作区域。几乎所有的java对象实例都存放在java堆中。堆空间是所有线程共享的
直接内存 : 在java堆外的、直接向系统申请的内存空间。通常访问直接内存的速度会优于java堆。因此出于性能的考虑,读写频繁的场合可能会考虑使用直接内存。
垃圾回收系统: java虚拟机的重要组成部分,垃圾回收器可以对方法区、java堆和直接内存进行回收。
java栈 : 一个线程的java栈在线程创建的时候被创建,java栈中保存着帧信息,java栈中保存着局部变量、方法参数,同时和java方法的调用。
本地方法栈 : 本地方法栈则用于本地方法的调用
PC寄存器: java虚拟机会为每一个java线程创建PC寄存器。
执行引擎 : java虚拟机的最核心组件之一, 负责执行虚拟机的字节码.