为了账号安全,请及时绑定邮箱和手机立即绑定

例题中的s3与s4.

String s4 = "I love " + s1;
         //比较字符串s4和s3
  // s1是变量,s4在运行时才知道具体值,所以s3和s4是不同的对象

为啥s3和s4不一样?他俩都是同样得来的,并没有用new创建啊?


正在回答

2 回答

String 类型的字符串是不可变的,如果改变了,其实是创建了新的对象,然后变量指向了新对象的内存地址,废除了原来指向的内存地址。用I love+s1连接后,实际上是创建了一个新的对象,也就有了新的内存地址,s3和s4各自创建了一个新对象,所以说他们2个用==比较的结果是false。

6 回复 有任何疑惑可以回复我~
#1

慕先生9431606 提问者

好吧,似懂非懂。还是谢谢你
2018-01-19 回复 有任何疑惑可以回复我~
#2

qq_老子是个好东西希望你也有_0 回复 慕先生9431606 提问者

String s4 = "I love " + s1;这里面其实是两个对象,自己本身是一个对象然后再new了一个对象,所以没加new就是一个对象,也可以把 String s1 = "imooc";称之为变量,但严格来说是一个对象。
2018-06-22 回复 有任何疑惑可以回复我~

还是想请问,s1与s2“==”判定,s3与s4“==”判定有什么区别,不明白为什么一个是true,一个是false

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409791    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

例题中的s3与s4.

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信