java难题

javaFreshman2012 2012-03-29 08:23:04
String s1="a";
String s2=s1+"b";
String s3="ab";
System.out.println(s2);
System.out.println(s3==s2);
我认为结果是ab true 结果是ab false
可以解释一下问什么吗?
...全文
94 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
牙痴 2012-03-29
  • 打赏
  • 举报
回复
其实 他(她)是个对象 光看脸 是不知道男女的
javaFreshman2012 2012-03-29
  • 打赏
  • 举报
回复
谢谢诸位了,我经过严密思索,晓得了,他们全是地址,而不是简单的字符串了
超江 2012-03-29
  • 打赏
  • 举报
回复
== 表示的事引用是否相等
而equals才是表示数据成员是否相等
超江 2012-03-29
  • 打赏
  • 举报
回复
System.out.println(s2);
System.out.println(s3==s2);
System.out.println(s2.equals(s3));
安特矮油 2012-03-29
  • 打赏
  • 举报
回复
String s2=s1+"b";这句的时候会新创建一个字符串,相当于String s2 = new String("ab");所以跟s3的内存地址也就不相同了。
javaFreshman2012 2012-03-29
  • 打赏
  • 举报
回复
String s1="a";
String s2=s1+"b";
String s3="ab";
System.out.println(s2);
System.out.println(s3==s2);
我认为结果是ab true 结果是ab false
可以解释一下为什么吗?
求助各位高手了。

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧