Java栈和本地方法栈方法调用栈,这些都是什么?
发布网友
发布时间:2022-04-23 13:47
我来回答
共1个回答
热心网友
时间:2022-05-07 20:08
JAVA内存里面有一般有四个分类,堆,
栈(堆栈),
静态域,
常量池
栈:
实际上是一个队列,
遵循
FILO的原则(后进先出),
里面储存的是函数的参数值,局部变量,对象的引用(对象本身不在这里)等,因此在每调用一个函数时,堆栈都会分配一部分空间给它,函数返回时,被释放
堆:
储存静态变量,全局变量
和
用new创建的东西,栈中的内存是动态内存,其中的内存在不使用时随时可以被回收
静态域:存放对象中static定义的成员
常量池:存放常量
根据以上解释回答你的问题:
JAVA栈存的是函数的参数值,局部变量,对象的引用
方法调用栈?
没有这说法吧,
方法的调用是存在栈中的
本地方法栈,
和JAVA中的栈一个作用,
只是这个栈是属于本地的,不属于JAVA虚拟机,但受JAVA虚拟机的控制,因为是JAVA虚拟机简单地动态链接并直接调用指定的本地方法。可以把这看作是虚拟机利用本地方法来动态扩展自己
局部变量和对象引用存在
栈
中,
方法调用的栈帧也是在
栈
中
以上是我自己查资料+自己的理解,有错望指出