JVM组成

JVM的组成结构

主要区域:

方法区:类定义信息和静态成员。
:主要用来存放数据(对象等)。
:控制指令的执行顺序;包括局部变量表;
计数器:服务于栈,记录指令的跳转;
本地方法栈:操作系统自带的方法(由其他语言实现),用于和一些底层的如操作系统或某些硬件交换信息;

图片.png

线程:(本质)从main方法入栈到调用各种函数入栈和出栈,最后main方法出栈的一个全过程。

图片.png

流程:

类信息加载到方法区;
 if 类信息中包含静态信息
         相应的静态信息将存储在方法区;
else
       方法区只是加载了类信息作为模板,并没有实例化;
开始执行main方法,在栈中开始调用执行
调用某函数:函数入栈;
  执行中:在栈中生成对应的局部变量表,根据花括号执行顺序作入栈出栈操作,同时指明变量控制域。
函数执行结束:函数出栈
句柄的位置

方法内部的句柄:存储在栈中;
方法外部:堆中;
静态的句柄:方法区中;

值的位置

八大基本类型的数据,句柄在哪里,值就在哪里;
引用类型的值全部都在堆里面。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容