JAVA面试经典--“==”与“equals”
所谓的面试题,无非就是考察你的基本功和细心,下面说一个典型的例子:
“==”和“equals”使我们平常见过最多的比较等价方法,虽然他们的使用相似,但是他们的原理确实天差地别,比如
String a="11";
String b="11";
String c=new String(b); ==关键字("new")
System.out.println(a==b);------1
System.out.println(a==c);------2
System.out.println(a.equals(b));-----3
System.out.println(a.equals(c));-----4
而结果我们会发现1、3、4是true,2是false
结果其原理很简单,“==”是比较对象的地址,c是引用别人的,而不是自己的,所以与a不匹配(自己的脑袋只有自己能用,别人的割下来你也用不了);而“equals”是比较内容的值,不管你是谁家的,只要结果一样就行(只要是帽子都能戴,不用去管他是垃圾堆里来的还是商店买的)!
备注:String c=new String(“11”);再去比较也是false!