时间:2021-07-16 | 标签: | 作者:Q8 | 来源:网络
小提示:您能找到这篇{Java虚拟机堆栈}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的Java虚拟机堆栈内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您! |
栈(stack),位于通用RAM中,但通过它的“堆栈指针”可以从处理器哪里获得支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放那些内存。存储读取速度,仅次于寄存器。存放基本类型数据变量和对象、数海底捞公关危机的效果组等引用类型的引用! 栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。
每一个方法从调用开始到执行完成的过程,就对应着一个栈帧在虚拟机栈里面从入栈到出栈(也叫弹栈)的过程。
对于栈,只有栈顶的栈帧是有效的,称为当前栈帧,这个栈帧所关联的方法称为当前方网店引流方法法。执行引擎所运行的所有字节码指令都只针对当前栈帧进行操作。
堆(heap),是一种通用性的内存池(也存在于RAM中),用于存放所有的JAVA对象!
各存储空间就速度来说,有如下关系:寄存器 >堆栈 > 堆 > 其它。
栈中的数据大小和生命周期是可以确定的,当没有引用指向数据时,这个数据就会消失。堆中的对象的由垃圾回收器gc负责回收。
结合实例:Student stud网站开发是怎么样的ent=new Student();JVM在内存中偷偷的做了什么?
加载Student.class文件进入内存
在栈内存中为student开辟空间,栈内存中的局部变量表中存放student变量
在堆内存中为学生对象开辟空间
学生对象的成员变量默认初始化(无参构造方法)
学生对象的成员变量显示初始化(有参构造方法)(若没有就不执行)
通过构造代码块对学生对象进行初始化(若没有就不执行)
通过构造方法对学生对象进行初始化(通过构造方法对学生对象的成员变量赋值)
对象初始化完毕
学生对象初始化完毕后,向外抛出产生的对象地址
让变量student指向学生对象。
|
上一篇:企业如何上云漫谈(下)
下一篇:Java内存模型与线程
小提示:您应该对本页介绍的“Java虚拟机堆栈”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通Java虚拟机堆栈的相关事宜。
关键词:Java虚拟机堆栈