课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
java虚拟机是程序员在学习java编程开发的时候需要重点掌握的一个编程技术,而今天我们就一起来了解一下,java虚拟机内存管理方法。
局部变量表
每个栈帧内部都包含一组被称为局部变量表的变量列表,长度在编译期时被确定。一个局部变量可以保存一个类型为boolean、byte、char、short、int、float、reference或returnAddress的数据。两个局部变量可以保存一个类型为long或者double的数据。
局部变量使用索引来进行定位访问,个局部变量的索引值为0,大值小于局部变量表的长度。对于long和double,由于占用了两个连续的局部变量,则采用局部变量中较小的索引值来定位。
操作数栈
每个栈帧内部都包含一个被称为操作数栈的后进先出栈,操作数栈的大深度在编译器被确定,一般的操作数栈指的就是“当前栈帧的操作数栈”。
在栈帧刚刚创建时,操作数栈是空的。JVM提供一些字节码指令来从局部变量表或对象实例的字段中复制常量或变量的值到操作数栈中,也提供了一些指令用于从操作数栈取走数据、操作数据以及把操作结果重新入栈。在调用方法时,操作数栈也用来准备调用方法的参数以及接收方法返回结果。
在任意时刻,操作数栈都会有一个确定的栈深度,一个long或者double类型的数据会占用两个单位的栈深度,其他数据类型会占用一个单位的栈深度。
动态链接
每个栈帧内部都包含一个指向当前方法所在类型的运行时常量池的引用,来对当前方法的代码实现动态链接。在class文件里面,一个方法如果要调用其他方法,或者访问成员变量,需要通过符号引用来表示,动态链接的作用就是将这些符号引用所表示的方法转换为对实际方法的直接引用。
希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。