黑马程序员技术交流社区
标题:
一道选择题不理解,求解释,谢谢。。。
[打印本页]
作者:
千年一梦
时间:
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