黑马程序员技术交流社区

标题: String [打印本页]

作者: william_J    时间: 2014-11-24 22:01
标题: String
String s1 = "a";
String s2 = "b"
String s3 = "ab"
然后:
s3==(s1+s2)是false,为什么?
"a"+"b" = "ab"是true。
作者: FlyFish    时间: 2014-11-25 09:48
==,比较的是地址值,=,比较的是具体值
作者: 陈国华    时间: 2014-11-25 10:11
String s1 = "a";//s1是一个类类型的变量,“a”代表一个对象
你用等号连接后s1 在内存中就指向“a"
s2指向“b”
s3指向“ab”
他们代表3个不同的对象,当然地址值不一样,是不能用而==是比较地址值,所以不相等
作者: 杨佳名    时间: 2014-11-25 10:25
http://bbs.itheima.com/thread-152431-1-1.html
作者: Afridoce    时间: 2014-11-25 11:54
s3==(s1+s2)   这里进行的是s3的地址值和(s1+s2)的地址值的比较,2个对象的地址值肯定不相同
"a"+"b" = "ab" 这里相当于是“ab”= ‘'ab'' 肯定是true了~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2