关于栈的问题

关于栈的问题

http://img1.sycdn.imooc.com//climg/5f637ec409df9c3114780283.jpg在很多地方看到说栈的共享的,课上说只有在堆和方法区是共享。到底怎么理解

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,

1、RAM:随机存取存储器(random access memory,RAM),是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。

2、非RAM:数据完全存储与程序之外,可以不受程序的控制,例如被存放于磁盘上,因此即使程序停止,他们仍可以保持自己的状态。

3、Java虚拟机栈存储的数据不在物理内存。

4、关于非RAM存储,举个例子:使用输入输出流将数据写入到某个文件中,这种属于非RAM存储,即使程序运行结束,文件中仍然存在写入的数据。

5、变量、常量、对象的引用等存放在虚拟机栈中。

祝:学习愉快~

好帮手慕阿满 2020-09-18 11:08:46

同学你好,这里的栈是不同的概念。

同学举的例子中,指的是非RAM存储时,也就是存储到磁盘中,这时的栈指的的系统中真实的内存物理区,栈是共享的。

而课程中讲的是在JVM中,RAM存储时,堆和方法区是共享的,这里的栈指的是抽象的数据存储结构。

祝:学习愉快~

  • 提问者 源治泷谷 #1
    能简单介绍一下两个栈吗。什么叫RAM和非RAM存储。Java虚拟机栈是存放方法的局部变量表、出口等,对应方法的调用进行出栈入栈,他不存放在物理内存的意思是存放在虚拟机内存吗。那非RAM又是什么,他存放哪些信息,存放在物理内存的意思是关闭Java也保留吗。另外,常说的常量变量、对象的引用放在栈中,是指的哪个栈
    2020-09-18 11:44:53
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师