永发信息网

Java String s="hello" 在内存中是什么状态

答案:6  悬赏:30  手机版
解决时间 2021-12-29 19:39
如题 在内存中 hello是存储在堆内存中 然后s在栈内存中存储指向堆内存hello的地址
还是hello直接存储在栈内存中
最佳答案
字符串是一种特殊的对象它不储存在堆栈里 而是存在字符串常量池里 就算字符串失去了所有的引用也不会被垃圾处理器处理掉 所有的字符串都是唯一的对象
引用s当然是在栈里了
全部回答
s在栈内存中存储指向堆内存hello的地址
如果是直接赋值的是取常量池的数据, 如果是new的,永远都是重新创建内存. 所以 s == d 因为在object比较中 ==比较的是内存地址, 而new string()是告诉jvm重新创建一块内存.
栈区,如果是String s=new String(“hello”);在堆区
这样声明的String 都是存在常量池中的。没有进堆。 只有 new String("hello")这样才会存进 堆里,指向栈中的引用
1. 单独使用""引号创建的字符串都是常量,编译期就已经确定存储到String Pool中;   2,使用new String("")创建的对象会存储到heap中,是运行期新创建的;   3,使用只包含常量的字符串连接符如"aa" + "aa"创建的也是常量,编译期就能确定,已经确定存储到String Pool中;   4,使用包含变量的字符串连接符如"aa" + s1创建的对象是运行期才创建的,存储在heap中;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
设f(x)是一个三次函数,f′(x)为其导函数
胆囊切除后5年,现只要一吃肉就恶心,是怎么
圆通快递单号在哪里看
下面的图案中,既是轴对称图形又是中心对称图
目前五星级酒店价格如何
我男朋友不爱我了,每天晚上一个人,总是情不
七年级上学期数学期末复习题
为什么蚂蚁借呗我到现在还开不了???
名字朔的意思是什么
玩仙剑四的时候,屏幕总是不停的闪烁,为什么
上海百文会展有限公司这家单位怎么样?地址:
在心里学里,拍打肩膀是一种安慰式的动作吗?
泰迪狗被吓着了怎么办
小莉关于海水“晒盐”的有关叙述正确的是A.利
怎么样才算信用卡透支?
推荐资讯
单选题唐宋以来,商业日益发展,城市走向繁荣
假离婚办房贷什么时候能复婚?
爱心无事代表数字几
铝与氧常温下的化学方程式
我国收入分配差距日益悬殊。收入分配越是趋向
正是因为不同文化的彼此交流,才使不同国度的
初中氧化反应的定义
为什么喜欢这个学校
为什么晚上脸上爱出油
谷歌浏览器怎么我装不起了。以前装了的,卸了
六代i5 6600上gtx1060,好像i5不能发挥显卡的
欧阳修论作文(苏轼《坡志林》)翻译
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?