早教吧 育儿知识 作业答案 考试题库 百科 知识分享

java问题解释16.关于以下程序段,正确的说法是(C)1.Strings1=”abc”+”def”;2.Strings2=newString(s1);3.if(s1==s2)4.System.out.println(“==succeeded”);5.if(s1.equals(s2))6

题目详情
java问题解释
16. 关于以下程序段,正确的说法是( 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都不执行为什么是这样?要详细解答!
▼优质解答
答案和解析
3. if(s1= =s2)4. System.out.println(“= = succeeded”);如上,执行行4需要一个条件,就是s1==s2,但是 == 与 equals() 方法不同,== 比较的是内存地址,而equals() 方法比较的是s1 和 s2 的值。因为s1 与 s2 的内存地址显然不是相同的,所以 s1!=s2 ,条件不成立,行4就不执行了。如果你将行3if语句里的条件换成“s1.equals(s2)==true”或“s1.equals(s2)”行4 就会执行了。回答完毕...