java学习笔记:== 和equals

==

基本定义:==对于基本类型来说是比较值是否相等,对于引用类型来说是比较地址值是否相等

equals

基本定义:被用来检测两个对象是否相等,即两个对象的内容是否相等,例如String类型为对象,如果用==比较的话则会自动比较两个String类型的地址值相等,此时则可以使用equals来比较两个对象的内容是否相等

例如:

public class Test {
    public static void main(String[] args) {
        String s1 = "abc";
        String s2 = "abc";

        String s3 = new String("abc");
        String s4 = new String("abc");

        System.out.println(s1 == s2);
        System.out.println(s3 == s4);
        System.out.println(s3.equals(s4));
    }
}

上述返回结果为true false true

特别说明:

String类型如果用new的方式创建则系统会在堆中为两个不同的String对象开辟一块空间(即使两个String对象内容相等)


版权声明:本文为m0_51404279原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。