- 前言
- 虚拟机听细讲
- 虚拟机的构成
- 闭帧
- 1、 局部变量表
- 2.、作数词
- 3、动态连接
- 4、返回地址
- 闭帧
- 代码实例讲解
- 虚拟机的构成
前言
上文就讲了JVM内存的五部分,Java方法区、Java栈、Native方法区、Java堆和程序计数器本文就详细详解下,并附带代码实例
虚拟机桟细讲
虚拟机里存储的是当前线程运行java方法所需的数据,指令、返回地址
指令限制 –Xss桟的大小。不同的jdk版本默认的梗大小不同。
会发生栈溢出错误。
里面包含了一个个的桟帧。
虚拟机桟构成
桟帧
栈帧:在每个 Java 方法被调用的时候,都会创建一个栈帧,并入栈。一旦方法完成相应的调用,则出栈
栈帧大体都包含四个区域:(局部变量表、操作数栈、动态连接、返回地址)
1、 局部变量表
局部变量表用于存放局部变量的(方法中的变量)。是一个32为长度,用于存放java八大基础数据类型。如果是64位的可以使用高地占位两个存放。如果是局部的对象,比如Object 对象,则只需要存放一个地址引用即可。
2.、作数桟
作数序是存放java方法执行的操作数的,也是一个先进后出的栈结构,操作数栈用来操作的&