黑马程序员技术交流社区
标题:
字符串
[打印本页]
作者:
wunairensheng95
时间:
2015-8-11 21:15
标题:
字符串
String a="a";
String b="b";
String c="ab";
String s=a+b;
为什么s==c是false
作者:
星耀
时间:
2015-8-11 21:23
字符串的内容相同。引用地址不一定相同,(相同内容的对象地址不一定相同),但反过来却是肯定的;
作者:
陈cc
时间:
2015-8-11 21:25
不懂,mark以后来看!
作者:
sl123
时间:
2015-8-11 21:49
赞同星耀的说法
作者:
黑进制
时间:
2015-8-11 22:02
赞近的很
作者:
一枚小小媛
时间:
2015-8-11 23:10
另外补充:字符串的对比比较一般不会用 == 符号,而且.equals
作者:
塞巴斯的小夏尔
时间:
2015-8-11 23:21
我也有点蒙。。
作者:
谭威威威威
时间:
2015-8-11 23:31
作者:
郭weijie
时间:
2015-8-11 23:39
应该是引用的内存地址的不一样
作者:
zby_allan
时间:
2015-8-12 22:23
==是判定地址是否相同,而不是equals内容相同。
作者:
cl99025
时间:
2015-8-12 23:01
我是来看答案的!!
作者:
q985274961
时间:
2015-8-12 23:26
String类型的
作者:
孟茹
时间:
2015-8-13 19:28
String s=a+b,是在内存中又开辟了一块空间,在内存中有他自己的地址;而String c="ab",也是在内存中开辟了一块空间,也有他自己的地址;两个String对象地址是不一样,(ps:"=="是判断地址的,String里面的重写的equals方法才是判断内容的)
作者:
hellojavacode
时间:
2015-8-13 20:25
“ab”是新的匿名对象,所以返回的是false。java中==比较的是变量的地址,就好像C中的指针,指针地址一样就返回true的,你这是两个不同的String对象,肯定地址不同了。如果要比较内容就用equals方法。
作者:
疯疯疯疯疯子
时间:
2015-8-13 20:45
==比较的是地址值和内容,c和s地址值不同吧
作者:
何时指点江山
时间:
2015-8-13 21:49
星耀 发表于 2015-8-11 21:23
字符串的内容相同。引用地址不一定相同,(相同内容的对象地址不一定相同),但反过来却是肯定的; ...
原来是这么回事,涨姿势
作者:
TheBadboy
时间:
2015-8-13 21:51
==比较引用数据类型,是比较的地址值
作者:
何时指点江山
时间:
2015-8-13 21:52
星耀 发表于 2015-8-11 21:23
字符串的内容相同。引用地址不一定相同,(相同内容的对象地址不一定相同),但反过来却是肯定的; ...
原来是这么回事,涨姿势
作者:
秋天中の夏季
时间:
2015-8-13 22:41
对象哈希值不同
作者:
yushimin763
时间:
2015-8-13 22:47
字符串判定应该用isEqualToString:吧....
作者:
蓬头小道士
时间:
2015-8-13 22:56
没个字符串都是一个对象,字符串一旦被初始化就不能被该变,s==c是false是因为它们是两个不同的对象。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2