Java中的字符串拼接问题?

Stringstring1="1";Stringstring2="2";Stringstring3=string1+string2;System.out.println(... String string1 = "1";
String string2 = "2";
String string3 = string1 + string2;
System.out.println(string3 == string1 + string2);
结果为false,为什么?

还有,字符串拼接之后会生成新的对象,应该是在String Pool中生成吧??
展开
 我来答
百度网友703ac55
推荐于2016-06-26 · TA获得超过105个赞
知道小有建树答主
回答量:73
采纳率:66%
帮助的人:46.2万
展开全部
①:java中有基本数据类型和对象之分的。对于基本数据类型 ,比如int 等采用==比较是直接比较值。而你这个String是字符串对象,若是用==进行比较其实是比较对象在内存中存放的物理地址。
分析一下:
你string1指向的是一个对象,string2指向的是另一个对象,string3是string和string2的连接,又重新创建一个对象,即string3指向的又是另外一个对象。
==是比较对象在内存中存放的物理地址。String1地址=String2地址+String3地址.结果是false。
String对象有一个equals方法,是来比较对象实际内容的。"12".equals("1"+"2").结果是true。
像楼上讲的改成System.out.print(string3.equals(string1+string2))就输出true了。
②:新的String对象是在jvm的Sting Pool中生成的。

全部自己打的噢。
编码之心
2011-10-08 · TA获得超过152个赞
知道答主
回答量:94
采纳率:100%
帮助的人:62.1万
展开全部
可以这么理解,字符串有两种存在方式,一种是常量池(栈)里的存在,还一种是堆里的存在,具体存在于哪里可以根据赋值判断一下,如果等号右侧存在变量则在堆里,全常量则在栈里,所以,string1,string2都在栈里,而string3右侧的string1是变量,所以会存在于堆里,string3 == string1 + string2判断的是堆里的两个字符串,false是必然的,这和new String("1") == new String("1")等同,如果,string1,string2都添加final修饰符,那么string3也会存在于栈里,此时就是true
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
左潇龙
2011-10-07 · TA获得超过470个赞
知道小有建树答主
回答量:344
采纳率:0%
帮助的人:276万
展开全部
string1 + string2这个玩意是你拼出来的,在内存中是不会分配地址的,因为他不属于任何一个对象,所以输出false!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gzaicd
2011-10-05
知道答主
回答量:6
采纳率:0%
帮助的人:3.7万
展开全部
System.out.println(string3 == string1 + string2);
string3 == (string1 + string2)是判断string3这个对象与string1 + string2之后形成的对象是不是同一个对象
string3.equals(string1 + string2)是判断string3这个对象与string1 + string2之后形成的对象,俩个对象的值是不是相等。
俩种写法都没有错,但使用的时候要注意你自己需要做的是什么!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哥是放牛的
2011-10-02 · TA获得超过171个赞
知道答主
回答量:130
采纳率:0%
帮助的人:45.3万
展开全部
你还没弄清楚==和equals方法的区别啊,,==是判断是不是同一个对象,而equals方法才是判断两个对象的值是不是一样,
你加上System.out.print(string3.equals(string1+string2))就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式