问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

堆,栈,常量池

发布网友 发布时间:2022-05-27 10:11

我来回答

2个回答

热心网友 时间:2023-10-16 12:46

int a=3; 常量池
char c = 'a'; 常量池
boolean b = true; 常量池
byte byt = 2; 常量池
String str = "abc"; 在内存中"abc"存放在栈
String str1 = new String("abc"); 在内存中new String("abc")被存放在堆

程序运行时,我们最好对数据保存到什么地方做到心中有数。特别要注意的是内存的分配。有六个地方都可以保存数据:
(1) 寄存器。这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部。然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配。我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹。
(2) 堆栈。驻留于常规RAM(随机访问存储器)区域,但可通过它的“堆栈指针”获得处理的直接支持。堆栈指针若向下移,会创建新的内存;若向上移,则会释放那些内存。这是一种特别快、特别有效的数据保存方式,仅次于寄存器。创建程序时,Java编译器必须准确地知道堆栈内保存的所有数据的“长度”以及“存在时间”。这是由于它必须生成相应的代码,以便向上和向下移动指针。这一*无疑影响了程序的灵活性,所以尽管有些Java数据要保存在堆栈里——特别是对象句柄,但Java对象并不放到其中。
(3) 堆。一种常规用途的内存池(也在RAM区域),其中保存了Java对象。和堆栈不同,“内存堆”或“堆”(Heap)最吸引人的地方在于编译器不必知道要从堆里分配多少存储空间,也不必知道存储的数据要在堆里停留多长的时间。因此,用堆保存数据时会得到更大的灵活性。要求创建一个对象时,只需用new命令编制相关的代码即可。执行这些代码时,会在堆里自动进行数据的保存。当然,为达到这种灵活性,必然会付出一定的代价:在堆里分配存储空间时会花掉更长的时间!
(4) 静态存储。这儿的“静态”(Static)是指“位于固定位置”(尽管也在RAM里)。程序运行期间,静态存储的数据将随时等候调用。可用static关键字指出一个对象的特定元素是静态的。但Java对象本身永远都不会置入静态存储空间。
(5) 常数存储。常数值通常直接置于程序代码内部。这样做是安全的,因为它们永远都不会改变。有的常数需要严格地保护,所以可考虑将它们置入只读存储器(ROM)。
(6) 非RAM存储。若数据完全独立于一个程序之外,则程序不运行时仍可存在,并在程序的控制范围之外。其中两个最主要的例子便是“流式对象”和“固定对象”。对于流式对象,对象会变成字节流,通常会发给另一台机器。而对于固定对象,对象保存在磁盘中。即使程序中止运行,它们仍可保持自己的状态不变。对于这些类型的数据存储,一个特别有用的技巧就是它们能存在于其他媒体中。一旦需要,甚至能将它们恢复成普通的、基于RAM的对象。Java 1.1提供了对Lightweight persistence的支持。未来的版本甚至可能提供更完整的方案。

热心网友 时间:2023-10-16 12:47

全局对象被放在堆,局部对象放在栈,静态对象和方法放在方法区。
你光给这些变量的声明和赋值语句没有用啊。
比如
class ABC{String a = "a";}
和class ABC{void ASD(){String a = "a";}}
还有class ABC {static String a = "a";}
放的位置都是完全不一样的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 在储存器堆栈中,保持不变的是A栈顶B栈指针C栈底D栈中的数据 2022款大阳adv1505月能到货 在存储器堆栈中,保持不变的是? 做个调研,国内各品牌油烟机的原装风管长度有多长?老板、方太、帅康、西门子、华帝、海尔、美的、樱花等 灰姑娘的故事300字 灰姑娘 童话故事 本田adv150是链条传动吗? 大队委竞选稿!!!急急急急! 电脑能使用微信吗?与手机上的微信有什么区别?微信用在电脑上好用吗? 支付宝花呗达到多少积分可以开通?有什么秘籍吗? 蚂蚁花呗1000积分是多少额度 花呗信用积分1000是多少额度 支付宝花呗多少积分能用 花呗消费9900积分有多少? 农民工7级伤残赔多少钱 七级工伤赔偿标准多少 江西共赢网络科技有限公司怎么样? 江西卓一网络科技有限公司怎么样? 江西奇幻网络科技有限公司怎么样? 乾合环境科技(山东)有限公司是做场地调查的吗? 堆栈中的高,低地址是什么意思,属于汇编知识还是其他谢谢直白回复 物理问题,很难的 想替家里儿子了解,家用宽带要选择多大速率的?可以以有官方推荐嘛? 在存储器堆栈中,若堆栈从地址大的位置向地址小的位置生成,栈底地址为A,SP初值为A+1,则堆栈压栈 《微机原理》的习题求解 计算机中的堆栈是一些连续的存储单元,在每个堆栈中数据的存入、取出按照“先进后出’’的原则.如图,堆 年终总结的结尾怎么写 怎样突显锁骨,锁骨不明显怎么办? 城市生活污水处理面临着哪些问题 卡贴机 激活有信号没wifi怎么办 用卡贴有信号了,可是不能联网,这是因为没有解锁和越狱吗,解锁或越狱后可以不用卡贴吗,谢谢了。 大学生适合用哪种笔记本电脑? 大学生买哪款笔记本电脑比较合适? 大学生买哪种笔记本电脑较好 大学生购买哪种笔记本电脑 美图秀秀能把电子照片底色换掉吗 药学和临床医学那个更好学? 重庆有哪些好玩的旅游景点 小学一年级身心健康水平怎么写 如何提高师德自身修养,践行师德规范要求,做德能双馨,身先垂范教师