黑马程序员技术交流社区
标题:
字符串问题
[打印本页]
作者:
@ne_pie尒ce
时间:
2013-11-18 14:24
标题:
字符串问题
String s1="abc";;
String s2=s1;;;
String s3=s1+"";;;
System.out.println(s1==s2);//true
System.out.println(s2==s3);//false
解释一下为什么第二条输出false?s3指向了哪块内存?
还有一条语句结束,用了多个;;;,为什么没有编译错误?
作者:
bpsend
时间:
2013-11-18 14:34
String s2=s1; 将s1的引用赋值给它 用==当然是true
String s3=s1+"";;; 这个又重新创建了一个对象。 ==是false。
String类重写了equals方法,如果你想值比较的话推荐使用equals进行比较。
作者:
Weix1992
时间:
2013-11-18 14:56
String s1="abc";;
String s2=s1;;;
String s3=s1+"";;;
System.out.println(s1==s2);//true
System.out.println(s2==s3);//false
String s2 = s1 ,这句话是表示将s1字符串的地址给了s2,而且==符号是比较的地址,不是值
String s3=s1+"";;; 这句话你在s3后加了一个 "" 字符串,s3首先会在字符串池中找有没有相同的串,如果有则把那个字符串的地址拿到,没有就创建一个新的地址并放入值
作者:
黄炳期
时间:
2013-11-18 16:54
如果问题已经解决,请及时修改主题为“提问结束”。
修改主题的方法链接
http://bbs.itheima.com/thread-89313-1-1.html
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2