JVM内存模型

在这里插入图片描述
一.类加载器

二.运行时数据区
?JVM调优主要就是优化堆 和 方法区
1.方法区: 静态变量、常量、类信息、运行时常量池
2.Java堆:我们的类的实例就放在这个区域,可以想象你的一个系统会产生很多实例,因此java堆的空间也是最大的。如果java堆空间不足了,程序会抛出OutOfMemoryError。

3.虚拟机栈:
A.它的生命周期与线程相同,所以对于栈来说不存在垃圾回收问题。一个线程对应一个java栈,每执行一个方法就会往栈中压入一个元素,这个元素叫“栈帧”。
B.栈帧中主要保存3类数据:
本地变量(Local Variables):输入参数和输出参数以及方法内的变量;
栈操作(Operand Stack):记录出栈、入栈的操作;
栈帧数据(Frame Data):包括类文件、方法等等,注意不是类信息
C.如果java栈空间不足了,程序会抛出StackOverflowError异常,这也是为什么递归会抛StackOverflowError,因为递归会调用大量方法
D.每个帧代表一个方法,Java方法有两种返回方式,return和抛出异常,两种方式都会导致该方法对应的帧出栈和释放内存。
E. 用来存放基本类型的变量和对象的引用变量

4.本地方法栈: 用来表示执行本地方法的,本地方法栈存放的方法调用本地方法接口,最终调用本地方法库,实现与操作系统、硬件交互的目的
5.程序寄存器(PC):程序该怎么执行,哪个方法先执行,哪个方法后执行,指令执行的顺序

三.执行引擎
1.执行引擎:根据PC寄存器调配的指令顺序,依次执行程序指令
2.垃圾回收
https://blog.csdn.net/weixin_45097458/article/details/100059635

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值