A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dddlinux 中级黑马   /  2015-8-31 17:32  /  839 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String s1 = "hello";
String s2 = "world";
String s3 = "helloworld";
String s4 = "hello" + "world" ;
System.out.println( s3 == s1 + s2);
System.out.println( s3 == s4 );
System.out.println( s3.equals((s1 + s2)));

16 个回复

倒序浏览
错对 对
回复 使用道具 举报
false,true,true.
回复 使用道具 举报
有点意思,学习了
回复 使用道具 举报
顶一个。。。。
回复 使用道具 举报
false,true,true.
回复 使用道具 举报
shdosh 中级黑马 2015-8-31 20:45:07
7#
有意思!
回复 使用道具 举报
错对错,我运行下
回复 使用道具 举报
其实这种题只要遵循一定的原则,就可以 拿下的:
字符串常量(注意是常量)之间相加,编译器会优化,把他拼在一起,如"a"+"b" 优化后就是"ab",如果常量池里面有"ab",那优化后的就是这个ab,他俩是一个对象。
字符串变量之间,或者字符串变量+字符串常量,编译器就不会优化了,相反,会new一个StringBuilder(或StringBuffer)类的对象,并调用其append()方法,将这俩字符串拼起来,成为这个新对象的字符串的内容。
回复 使用道具 举报 3 0
   顶一帖               
回复 使用道具 举报
哈皮哈皮doge 发表于 2015-8-31 21:23
其实这种题只要遵循一定的原则,就可以 拿下的:
字符串常量(注意是常量)之间相加,编译器会优化,把他拼 ...

非常正确,谢谢你的总结
回复 使用道具 举报
哈皮哈皮doge 发表于 2015-8-31 21:23
其实这种题只要遵循一定的原则,就可以 拿下的:
字符串常量(注意是常量)之间相加,编译器会优化,把他拼 ...

学习了.. 多谢指导
回复 使用道具 举报
1楼正解
回复 使用道具 举报
1L学习了!!!
回复 使用道具 举报
哈皮哈皮doge 发表于 2015-8-31 21:23
其实这种题只要遵循一定的原则,就可以 拿下的:
字符串常量(注意是常量)之间相加,编译器会优化,把他拼 ...

回答的666,收藏了
==比较对象的引用,.equals()比较对象的内容
回复 使用道具 举报
1楼说的很详细
回复 使用道具 举报
true false
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马