==和equals的区别

1、==比较的是内存中是不是同一个对象,equals比较的是内存中的对象的内容是否一样

2、举例

          String s1 = "abc";		  
          String s2 = s1;
          String s3 = new String("abc");
          String s4 = new String("abc");
          String s5 = "abc";
          System.out.println("== comparison : " + (s1 == s5));
          System.out.println("== comparison : " + (s1 == s2));
          System.out.println("Using equals method : " + s1.equals(s2));
          System.out.println("== comparison : " + s3 == s4);
          System.out.println("Using equals method : " + s3.equals(s4));

  结果是:

== comparison : true
== comparison : true
Using equals method : true
false
Using equals method : true

  可知String定义两个相同内容的常量的时候,其实是创建了一个对象,然后两个都指向这个对象。如果是String定义两个内容相同的变量的时候,在内存中创建的是两个对象;

       另外也可以看出==比较的是是否是同一个对象,而equals比较的是两个对象的内容是否相同。

原文地址:https://www.cnblogs.com/saifei1125/p/11653708.html