栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

jvm 虚拟机栈的简单介绍

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jvm 虚拟机栈的简单介绍

总的来说,jvm虚拟机内存分为:方法区,堆,寄存器,虚拟机栈,本地方法栈。方法区和堆是所有线程共享的,寄存器,虚拟机栈和本地方法栈是每个线程自己独有的,随着线程的创建而创建,线程的销毁而销毁。

虚拟机栈(以下简称栈)大小在jvm启动的时候可以通过-Xss进行配置。栈的作用主要是在某个线程进行方法调用的时候用于存放调用方法相关信息。一个方法调用另一个方法,另一个方法相关信息就会入栈,另一个方法调用完成就会出栈,栈中就没有了相关的信息。

每个线程都有自己的栈,栈中的数据都是以栈帧的格式存在,在这个线程上正在执行的每个方法都各自对应一个栈帧。栈帧是一个数据集,维系着方法执行过程中的各种信息数据。栈帧包括:局部变量表,操作数栈,动态链接,方法返回地址,一些附加信息。

局部变量表也被称之为局部变量数组或本地变量表。局部变量数组主要用于存储方法参数和定义在方法体内的局部变量,这些类型包括各类基本数据类型,对象引用和returnAddress类型。局部变量的大小是在编译器确定的。局部变量表中的变量也是重要的垃圾回收根节点,只要被局部变量表中直接或者间接引用的对象都不会被回收。

操作数栈,在方法的执行过程中,根据字节码指令,往栈中写入数据或提取数据,即入栈和出栈。 一个方法开始执行的时候,一个栈帧也随之被创建出来,这个方法的操作数栈是空的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/891320.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号