jvm:内存结构与对象内存解析

java的跨平台性主要是因为其字节码文件可以在任何具有java虚拟机的计算机或者电子设备上运行,jvm中的字节码解析器负责将字节码文件解释成机器码运行,字节码文件.class是java源程序通过编译器产生的。

jvm是jre的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上模仿功能实现出来的,jvm有自己完善的硬件架构,如处理器,堆,栈,寄存器,还有相应的指令系统,所以安装jdk(开发工具包)的时候也就安装了jvm,jdk包含着jre。

jvm主要由三部分组成:1、类装载器子系统(ClassLoader)  2、运行时数据区   3、执行引擎

它的内存结构图如下:

 

运行时的数据区包括:方法区、虚拟机栈、本地方法栈、堆、程序计数器

 

1、堆:存放的是对象的实例,所有的对象的实例以及数组都是在堆上分配内存

2、栈:虚拟机栈,存放局部变量,如八种基本数据类型、对象的引用

3、方法区:用于存储被虚拟机加载的类信息、常量、静态变量,即编译器编译后的代码等

 

posted @ 2020-07-09 22:44  gz、qml  阅读(155)  评论(0)    收藏  举报