中易网

String s = new String("xyz");创建了几个String Object?

答案:1  悬赏:0  
解决时间 2021-02-18 09:58
第一个对象是字符串常量"xyz"。应该放在数据区吧?
第二个对象是new String("xyz")的时候产生的,在heap中分配内存给这个对象,只不过这个对象的内容是指向字符串常量"xyz"。 具体是怎么指向的?堆里面那个对象的内容是字符串常量在数据区的地址么?
另外还有一个引用s,指向第二个对象。这是一个变量,在栈中分配内存。临时变量分配在栈空间。
最佳答案
一个或两个
String类型在Java里比较特殊 是作为常量存放在内存区的 如果在第一次使用时该字符串在内存的字符串常量池中不存在 就会创建放进去,如果存在就使用。
楼主给出的这行代码中,使用new肯定是要创建一个新的字符串的,而在这之前就需要先判断在字符串常量池中是否已经存在了一个"xyz",如果不存在,就会先创建一个"xyz"放进常量池,然后再new一个String s,这样就是两个。如果在new之前常量池中已经存在了"xyz",那就只需要new一个String s,这样就是一个了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
唐朝的科举制和三省六部制的关系
用java实现读取一个jpg图片,根据4个坐标,把
苹果6,8.4升级9.3.2系统怎么样
太阳鸟窗帘地址在什么地方,想过去办事
为什么LOLFPS值不稳定感觉不流畅
什么是职能制结构?
中国人寿保险股份有限公司钟山支公司两安镇营
我的荣耀6x锁屏一段时间后收不到微信
小学生两百米短跑接力通讯稿100字
某天村里的寡妇拉我去她家的小说
当兵需要高中毕业证吗
在上海摆个地摊炒意大利面生意会好么?
天生祥超市镇沅店这个地址在什么地方,我要处
双筋梁在什么情况下是按偏拉构件而非受弯构件
如何使用手机拍出更美的照片
推荐资讯
hpDL380 服务器怎么从光驱启动
红叶传情有何典故
悟空理财邀请10人一个月能提现多少
求天正建筑2.0注册码
安仔包地址在哪,我要去那里办事
81年女和77年男属相好吗
高峰电动车行地址在哪,我要去那里办事
广东农信英德农村信用社地址在哪,我要去那里
洛阳到海南 飞机票价
个体工商户营业执照,可以雇人卖东西吗?
用,月光,校园,芒果树,小路,写一段话(要
郑州市经委家属院在哪里啊,我有事要去这个地
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?