阅读下面程序
public class Operators And Expressions(
void equals Methodl(){
Stringsl
一 new String("how are you") ;
Strings2=new String("how are you") ;
System.out .println(s1= =s2) :
}
public static void main(String args[]){
Operators And Expressions Oper And Exp=new Oper
ators And Expressions
() ;
//用于复合类型数据的”=
=”运算符
OperAndExp. equalsMethodl() ;
}
}
程序运行结果是 ( ) 。
正确答案: C
本题解析:
本题考查的是 Java 语言中运算符的特殊用法。相等比较运算符 "= =" ,不仅可用 于基本类型的数据之间的比较, 还可以用于复合类型数据之间的比较。 但是, 对于复合类型 数据的 "= =" 运算,其比较的目标是两个操作数是否是同一个对象。如果需要比较两个对象 的值是否相同,则可以调用 equals() 方法。题目中函数 equalsMethodl() 的代码非常简单, 首先生成两个字符串对象 sl 和 s2,然后输出表达式 "sl= =s2" 的结果。根据上面介绍的相 等比较运算符的用法,字符串对象 sl 和 s2 是复合类型数据,因此表达式 "sl= =s2" 比较的 是 sl 和 s2 是否同一个对象。显然, sl 和 s2 虽然具有相同的值,即 "how are you" ,但它 们是两个不同的对象。因此,本题的正确答案是 C。