public class Main {
public static void main(String[] args) {
// == 比较的是两个对象的引用(内存地址),对于基本数据类型比较的是值
String str1 = new String("hello");
String str2 = new String("hello");
System.out.println(str1 == str2); // false,因为str1和str2是两个不同的对象,内存地址不同
// equals 方法比较的是两个对象的内容
System.out.println(str1.equals(str2)); // true,因为str1和str2的内容相同
// 对于基本数据类型,== 和 equals 的效果相同,都是比较值
int a = 5;
int b = 5;
System.out.println(a == b); // true
System.out.println(Integer.valueOf(a).equals(Integer.valueOf(b))); // true
}
}
== 运算符用于比较两个对象的引用(即它们在内存中的地址),对于基本数据类型(如 int、char 等),它比较的是值。equals() 方法用于比较两个对象的内容是否相等。对于 String 类型,默认实现是比较字符串的内容,而对于其他对象类型,默认实现是比较引用(除非该类重写了 equals() 方法)。通过上述代码示例可以看出:
== 比较两个 String 对象时,如果它们是通过 new 关键字创建的,则结果为 false,因为它们在内存中的地址不同。equals() 方法比较两个 String 对象时,如果它们的内容相同,则结果为 true。上一篇:java 乐观锁
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站