黑马程序员技术交流社区

标题: 一道选择题不理解,求解释,谢谢。。。 [打印本页]

作者: 千年一梦    时间: 2015-2-24 10:17
标题: 一道选择题不理解,求解释,谢谢。。。
关于以下程序段,正确的说法是(   C   )

1.  String  s1=”abc”+”def”;

2.  String  s2=new  String(s1);

3.  if(s1= =s2)

4.     System.out.println(“= = succeeded”);

5.  if (s1.equals(s2))

6.     System.out.println(“.equals()  succeeded”);

A、行4与行6都将执行            B、行4执行,行6不执行

C、行6执行,行4不执行         C、行4、行6都不执行

不理解为什么是这样?谢谢。。。



作者: sofeel    时间: 2015-2-24 10:55
基本类型数据及字节码比较用‘==’。对象比较用equals方法。直接继承于Object的equals方法比较的是对象的地址,String复写了equals方法,比较的是字符串序列。s1、s2的字符串序列一样,所以第6句输出。
s1、s2分别为两个对象的引用,‘==’比较的只能是地址,自然不等。第四句不能输出。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2