Java 中 == 和equals 的区别是什么,使用场景是什么,给我示例代码
时间: 2024-03-26 21:39:22 浏览: 124
Java中,"=="用于比较基本数据类型和对象的引用,而equals方法则是用于比较两个对象的值是否相等。
"=="比较的是两个对象的地址是否相同,也就是它们是否引用同一个对象。当比较基本数据类型时,比较的是它们的值是否相同。我们可以使用"=="来判断两个对象是否相等,但是这种方法只在比较两个基本数据类型或者比较两个对象是否引用同一个对象时才适用。
equals方法比较的是两个对象的内容是否相等,也就是它们的值是否相等。equals方法默认情况下与"=="的作用相同,比较的是两个对象的引用是否相同,但是可以通过重写equals方法来改变它的行为,实现自定义的比较逻辑。
下面是示例代码:
```
String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");
System.out.println(str1 == str2); // true,因为它们引用同一个字符串对象
System.out.println(str1 == str3); // false,因为它们引用不同的字符串对象
System.out.println(str1.equals(str3)); // true,因为它们的值相等
```
在这个示例中,我们比较了三个字符串对象的引用和值。在第一行代码中,由于str1和str2都是指向同一个字符串对象,所以"=="的结果是true。在第二行代码中,str1和str3指向不同的字符串对象,所以"=="的结果是false。在第三行代码中,我们使用equals方法比较str1和str3的值,结果是true,因为它们的值相等。
阅读全文