黑马程序员技术交流社区
标题:
String
[打印本页]
作者:
cj286
时间:
2015-12-30 22:28
标题:
String
String s1 = "hello";
String s2 = "world";
String s3 = "helloworld";
System.out.println(s3 == s1+s2);
System,out.println(s3 == "hello"+"world");
请问这两个表达式有什么异同
作者:
iori
时间:
2015-12-31 21:22
String s1 = "hello"; //把一个常量字符串赋值给s1
String s2 = "world";//同上
String s3 = "helloworld";//同上
System.out.println(s3 == s1+s2);//这个是比较表达式。虽然s1+s2也是字符串helloworld,与s3的值相同。但这里比的是s3与s1+s2的hashCode值,所以输出flase
System,out.println(s3 == "hello"+"world");//这个比的是s3的值与一个拼接的字符串,所以是true.
作者:
1158147908
时间:
2016-1-1 23:57
说的好详细,赞一个
作者:
1158147908
时间:
2016-1-1 23:58
s1+s2是先用stringbuffer连接在赋值的,地址不同
作者:
程程程程程92
时间:
2016-1-2 00:17
顶 一下
作者:
cj286
时间:
2016-1-2 23:38
1158147908 发表于 2016-1-1 23:58
s1+s2是先用stringbuffer连接在赋值的,地址不同
就是说这里它走了堆内存是吧
作者:
云鱼
时间:
2016-1-2 23:43
存在的地址不同
作者:
yifuyue
时间:
2016-1-7 23:10
顶一个,顶一个!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2