==和equals的深度理解

==和equals的区别

==对比的是栈中的值,对于基本数据类型比较的是变量的值,引用类型是堆中内存对象的地址

equals:在object中默认的也是采用==做比较,通常会重写

String中已经重写过equals方法了,他是取出每一个字符做对比,判断是否相等。

        String a="21";
        String c = new String("21");
        String d= c;
        System.out.println(a==c);  //false
        System.out.println(c==d);  //true
        System.out.println(a.equals(c));//true
        System.out.println(c.equals(d));//true

==指向的是对象的地址,重写的equals比较的是值

你可能感兴趣的:(面试题,java)