Java equals、== 区别与用法

274 阅读1分钟
  • ==:比较两个变量本身的值,即两个对象在内存中的首地址。(java中,对象的首地址是它在内存中存放的起始地址,它后面的地址是用来存放它所包含的各个属性的地址,所以内存中会用多个内存块来存放对象的各个参数,而通过这个首地址就可以找到该对象,进而可以找到该对象的各个属性)

  • equals: 比较字符串中所包含的内容是否相同。

  • 案例代码

    public class test {
      public static void main(String[] args) {
        String s1 = "dzm";
        String s2 = "dzm";
        String s3 = new String("dzm");
        // 相等的
        System.out.println(s1 == s2); // true
        // 不相等,内存地址不一样
        System.out.println(s1 == s3); // false
        // s1 字符串内容包含 s3
        System.out.println(s1.equals(s2)); // true
        // s1 字符串内容包含 s3
        System.out.println(s1.equals(s3)); // true
      }
    }