不定项选择题
给出以下语句:
String s="hello";
String t="hello";
char c[]={'h','e','l','l','o'};
以下语句返回true的是______。
A.s.equals(t); B.t.equals(c);
C.s==t;D.t.equals(new String("hello"));
E.t==c;
【正确答案】
A、C、D
【答案解析】==操作符比较的是操作符两端的操作数是否是同一个对象,而String的equals()方法比较的是两个String对象的内容是否一样,其参数是一个String对象时才有可能返回true,其他对象都返回假。需要指出的是由于S和t并非使用new创建的,它们指向内存池中的同一个字符串常量,因此其地址实际上是相同的(这个可以从反编译一个简单的测试程序的结果得到,限于篇幅不列出测试代码和反编译的分析),因此答案C也是正确的。