日期:2014-05-20  浏览次数:20645 次

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!