JVM内存模型是什么?

1099 篇文章 1 订阅
1030 篇文章 9 订阅
JVM内存模型包括程序计数器、虚拟机栈、本地方法栈、堆和方法区。栈是线程私有,用于方法执行,堆是对象存储空间,方法区存储类信息。栈中的局部变量必须初始化,堆中的对象由垃圾回收器管理。方法区包含运行时常量池。
摘要由CSDN通过智能技术生成

JVM的内存模型
Java虚拟机管理的内存分为五大区域,程序计数器、虚拟机栈、本地方法栈、堆以及方法区。程序计数器、虚拟机栈和本地方法栈都是线程私有的,即每个线程都有自己的程序计数器、虚拟机栈和本地方法栈;堆和方法区是线程共享的,即所有线程共享堆和方法区。
JVM内存模型:
在这里插入图片描述

1) 是为java方法提供运行空间的
2) 方法一旦被调用就会在栈中创建对应的栈帧,而方法的整个执行过程就是方法对应的栈帧从入栈到出栈的过程。换言之,就是方法被调用进栈(压栈 入栈),方法执行结束出栈(弹栈)。
3) 栈是先进后出后进先出(先被调用的方法最后结束,后被调用的方法最先结束)
4) 栈中的变量都是属于方法的,所以都是局部变量,且局部变量必须初始化值。
5) 栈生命周期与其所属线程的生命周期一致,可以认为栈具有自动销毁机制。


1) 是为实体对象来开辟空间的,换言之就是实体对象的空间都在堆中开辟。凡是被new出来的都是对象。
2) 堆中的变量是对象变量,因为是属于对象的,且是随着对象的创建而产生随着对象的销毁而销毁。
3) 堆中的变量(对象变量)都有默认值:
整数:0 浮点型:0.0 布尔型:false char型:’ ’ 对象:null
4) 堆没有自动销毁机制,它里面的垃圾由垃圾回收器负责收集(通过收集算法判断哪个对象属于垃圾然后再清理)
5) 堆中的空间都有一个16进制的首地址作为地址进行区分。

方法区
方法区中存放已经被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
常量是存放在方法区中的运行时常量池中的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值