怎样理解“==”和equals的区别

在一般的情况下  “==”比较的是地址   当类型是数值的时候  “==”比较的是两个数的大小  除此之外比较的是两个对象的地址   “==”就只有这样的比较

equals()这个方法  如果比较的是String类型的话  比较的是两个对象的内容  例如“abc”和“bcd”比较 返回的就是false     但是如果比较的类型是其他类型 比较的是地址

所以如果要比较自己定义的类型   就要重写equals()方法!

补充一点:如果是对象的话 可以使用instance of来比较 判断是否存在包含关系!

比如String s1 = new String("1");

       String s2 = s1;       

       String s3 = new String("1");

       测试 s1==s2,                    true

               s1.equals(s2)           true

               s1==s3,                    false   因为new了一个新的对象不是同一个地址

               s1.equals(s3)           true     因为比较的是地址

 读者可以分析以上的返回值!!

 

你可能感兴趣的:(怎样理解“==”和equals的区别)