黑马程序员技术交流社区
标题:
经典面试题
[打印本页]
作者:
jaunce
时间:
2015-8-24 07:17
标题:
经典面试题
String s1="abc";
String s2=new String("abc");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
结果一样么,为啥?
作者:
a2029460
时间:
2015-8-24 08:38
false true ==比的是变量的值,而题里2个变量存放的是不同“abc”对象的内存地址,而equals比的是内容,他们内容都一样。
作者:
a1ccwt
时间:
2015-8-24 09:04
这个题经常考
作者:
血马雄风
时间:
2015-8-24 09:40
第一个println为false,而第二个println为ture.String的内容是不可变的:即对象不可变,但引用可变
作者:
胡述灵
时间:
2015-8-24 09:58
这道题主要是考 == 和equal的区别:
== 对象的比较,值相等,引用也要相同才能相等
equal 值相等就OK
作者:
哈皮哈皮doge
时间:
2015-8-24 12:35
这个题主要考2点:1、内存结构的问题 2、==和equals的区别
字符串常量和static变量存放在data segment,而对象存放在heap segment;
==比较的是地址,由于String类重写了equals方法,比较的是2个字符串的内容是否相等
作者:
visen
时间:
2015-8-24 13:41
结果:false true, ==比较的是地址, equals比较的是 内容
作者:
三分之一
时间:
2015-8-24 14:12
这道题确实很容易考,楼上们都说的很清楚了,望楼主加油拿下它!
作者:
飞龙传神
时间:
2015-8-24 14:28
这题应该不难吧,把握住==和equals就行 ,加油
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2