JVM(二)-内存结构

内存结构简图:


JVM内存结构简图(尚硅谷宋红康)

虚拟机JVM加载程序过程:

1、类加载子系统把编译后的字节码文件(.class)加载到内存中

2、方法区:生成大的类的对象,初始化静态方法和变量,存放到方法区

3、执行引擎开始按照字节码指令,依次执行。栈去局部变量表中取数据,操作入栈,或者在堆空间中创建对象。程序在依次执行过程中,会用到程序计数器,或则好本地的方法栈


JVM详细图_en(尚硅谷 宋红康)


JVM详细图_cn(尚硅谷 宋红康)

类加载子系统:

1、加载(Loading)

    引导类加载器、扩展累加载器、应用加载器。扩展:自定义加载器

2、链接(Linking)

    验证、准备、解析

3、初始化(Initiallzation)

运行时数据区:

程序计数器:每一个线程一份

栈区:每一个线程一份,栈帧(局部变量表(Local variables)、操作数栈(Operate stack)、动态链接(Dynamic Linking)、方法返回地址(return address))

本地方法栈:区别于栈,本地方法接口API调用

堆区:创建的JAVA对象,内存中最大的空间,GC重点考虑的空间

(Hotspot才有)方法区:类、常量、域、方法信息等

执行引擎:

解释器(Interpreter)

即时编译器(JIT Compiler)

垃圾回收器(Garbage Collection)

你可能感兴趣的:(JVM(二)-内存结构)