// == or equals

 public static void main(String[] args) {
        String dd = null;
        String str = "你好";  // 保存在运行时常量池中(方法区)   将引用的对象"你好" 赋值给 str
        String newStr = new String("你好"); // 保存在堆中  将引用的对象"你好" 赋值给 newStr
        String newStr1 = new String("你好");

        System.out.println(str == newStr);   // false
        System.out.println(str.equals("你好"));  //true

        System.out.println(newStr1 == newStr);  //false
        System.out.println(newStr1.equals(newStr)); //true

        //不建议使用
        System.out.println(dd.equals("dd")); // NullPointerException
        //建议使用
        System.out.println("dd".equals(dd)); // false
        System.out.println(Objects.equals("", dd)); //false

        //.contentEquals() 可以将字符串与任何的字符序列(StringBuffer、StringBuilder、String、CharSequence)进行比较。
        System.out.println(newStr.contentEquals(str));
    }

  • “==”操作符用于比较两个引用(内存中的存放地址)是否相等,它们是否是同一个对象。
  • .equals() 用于比较两个对象的内容是否相等。
 
12-30 17:19