java中equals与==的使用

Posted phililps

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中equals与==的使用相关的知识,希望对你有一定的参考价值。

 

   下面用个小例子记录一下

    

package lianxi1;

public class lianxi1 {

    public static void main(String[] args) {

            String s1 = "chaoren";
            String s2 = "chaoren";
            String s3 = new String("chaoren");

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

            

}

对应的结果是
true
false
true

   “==”比较的是2个数据引用的是否是同一位置,equals比较的是内容是否一样。

    这里有一点需要了解在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地 址,

    但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。

    在以后熟悉做项目时候,你会发现只要是自己的生成的实体类中都会重写equals方法。

         这里的s2和s1引用的同一个位置,所以比较为true。

    s3是新生成的一个对象,只能在equals的情况下才为true。

    







以上是关于java中equals与==的使用的主要内容,如果未能解决你的问题,请参考以下文章

Java equals 方法与hashcode 方法的深入解析

与NULL比较使用==还是equals

java中equals与==的使用

leetcode_1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold_[二维前缀和](代码片段

Java中String推断相等equals与==的差别以及StringBuilder的equals

Java ==,equals() 和hashCode