public class StringEqualityCheck {
public static void main(String[] args) {
// 定义两个字符串
String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");
// 使用 == 操作符比较
// == 比较的是两个字符串对象的引用(内存地址),而不是内容
System.out.println("Using == operator:");
System.out.println(str1 == str2); // true,因为 str1 和 str2 指向同一个常量池中的对象
System.out.println(str1 == str3); // false,因为 str3 是新创建的对象
// 使用 equals() 方法比较
// equals() 比较的是两个字符串的内容
System.out.println("\nUsing equals() method:");
System.out.println(str1.equals(str2)); // true,内容相同
System.out.println(str1.equals(str3)); // true,内容相同
}
}
== 操作符:用于比较两个字符串对象的引用(即它们在内存中的地址)。如果两个字符串引用指向同一个对象,则返回 true;否则返回 false。equals() 方法:用于比较两个字符串的内容。如果两个字符串的内容相同,则返回 true;否则返回 false。在这个例子中:
str1 和 str2 都是指向字符串常量池中的同一个 "Hello" 对象,因此 str1 == str2 返回 true。str3 是通过 new String("Hello") 创建的新对象,虽然内容相同,但它在堆内存中是不同的对象,因此 str1 == str3 返回 false。equals() 方法时,str1.equals(str3) 返回 true,因为它们的内容相同。上一篇:java 判断对象是否为空
下一篇:java回调函数的使用场景
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站