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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

关于以下程序段,正确的说法是(   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都不执行

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


评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1 加油

查看全部评分

1 个回复

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

评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马