String s = new String("xyz"); 为什么创建了2个String Object?

能说下原理吗,谢谢... 能说下原理吗,谢谢 展开
 我来答
time飞啊飞的
推荐于2017-10-08 · 超过32用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:62.9万
展开全部
String s = new String("xyz");
创建两个对象
第一个 new的时候 会在堆生成一个对象
第二个 当成参数传入的"xyz"会在常量池生成一个对象 以后用 String x="xyz" 之类的新的变量都会引用常量池的xyz
所以是生成两个对象
Fgcfgvgjh
2014-12-04
知道答主
回答量:1
采纳率:0%
帮助的人:1292
展开全部
"xyz"在java中规定为直接量,即可以把"xyz"看作一个string对象,这样使得更人性化,只不过,它是呆在堆内存的string pool区内的。而你又用"string s=new string()"在堆内存内创建了一个string对象,此时,你调用的构造方法是string(string s),相当于创造了一个与"xyz"string对象值一致的引用名为s的string对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式