// == 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()
用于比较两个对象的内容是否相等。