JVM基础结构与字节码执行引擎
JVM基础结构与字节码执行引擎 JVM基础结构JVM内部结构如下:栈、堆。 栈JVM中的栈主要是指线程里面的栈,里面有方法栈、native方法栈、PC寄存器等等;每个方法栈是由栈帧组成的;每个栈帧是由局部变量表、操作数栈等组成。 每个栈帧其实就代表一个方法 堆java中所有对象都在堆中分配;堆中对象又分为年轻代、老年代等等,不同代的对象使用不同垃圾回收算法。 -XMs:启动虚拟机预留的内存-Xmx:最大的堆内存 一、堆的分代假设根据研究表明,堆中对象大部分都是创建后,立马就可以被销毁的。如: 为了优化堆中的内存,将堆中对象分为不同代。在年轻代中,GC发生比较频繁;在老年代中,GC发生比较少。 二、堆的分代年轻代:Young Generation老年代:Old Generation/Tenured永久代:Permanent Generation永久代在Java虚拟机规范中是没有的,但是Host Spot虚拟机中有。 三、方法区方法区被所有线程共享;方法区是用来存储编译后的代码,即存储每个类的运行时常量池、字段和方法。方法区在虚拟机启动时创建;虽然方法区在逻辑上是堆的一部分,但在一些简单的...
