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