类Test定义如下: class Test { public static void main(st
类Test定义如下: class Test { public static void main(string args[]) { String s1="abc"; String s2=new String(s1); i(s1==s2) System.out.println("s1==s2"; i(s1.equals(s2)) System.out.println("s1.equals(s2)"); } } 那么程序的执行结果为:【 】
请帮忙给出正确答案和分析,谢谢!
参考解答
正确答案:s1.equals(s2)
本题考查的是:“==”和equals的区别。=操作符专门用来比较变量的值是否相等。比较好理解的一点是:inta=10;intb=10;则a==b将是true。但不好理解的地方是:Stringa=newString('oo');Stringb=newString('oo');则a==b将返回alse。对象变量其实是一个引用,它们的值是指向对象所在的内存地址,而不是对象本身。a和b都使用了new操作符,意味着将在内存中产生两个内容为'oo'的字符串,既然是“两个”,它们自然位于不同的内存地址。a和b的值其实是两个不同的内存地址的值,所以使用“==”操作符,结果会是alse。诚然,a和b所指的对象,它们的内容都是'oo',应该是“相等”,但是==操作符并不涉及到对象内容的比较。对象内容的比较,正是equals方法做的事。
相似问题
三元条件运算符ex1?ex2:ex3 相当于下面______语句。 ( )A.i(ex1)ex2;e
三元条件运算符ex1?ex2:ex3,相当于下面______语句。 ( )A.i(ex1)ex2;else ex3;B.i(ex2)ex1;else ex3;C.i(ex1)ex3;else ex2;D.i(ex3)ex2
请完成下列语句中应填的内容: ile pathName=new ile(args[0]); Stri
请完成下列语句中应填的内容: ile pathName=new ile(args[0]); String[]ileNames=pathName 【 】;请帮忙给出正确答案和分析,谢谢!
在程序运行过程中 经常需要扩展数组 则应该使用java.util.【 】类。请帮忙给出正确答案和分析
在程序运行过程中,经常需要扩展数组,则应该使用java util 【 】类。请帮忙给出正确答案和分析,谢谢!
下列Java标识符 错误的是 ( )A._sys_varlB.$changeC.User_nameD
下列Java标识符,错误的是 ( )A._sys_varlB.$changeC.User_nameD.1_ile请帮忙给出正确答案和分析,谢谢!
下面是用户程序对Applet类中方法paint()的重新定义 请在横线处填入正确的语句。 publi
下面是用户程序对Applet类中方法paint()的重新定义,请在横线处填入正确的语句。 public void paint(Graphics g) {g.【 】(“你好!”,10,20);}
