java中==和equals
时间: 2023-05-24 21:04:34 浏览: 96
java中equals和==的区别.pdf
Java中,==是一个运算符,用于比较两个对象或基本类型之间的值是否相同。对于基本类型,比较的是值,对于对象类型,则是比较对象的引用地址是否相同。
而equals()是一个方法,用于比较两个对象是否相等。默认情况下,equals()方法比较的是对象的引用地址,即比较两个对象是否是同一个对象。但可以通过重写equals()方法实现自定义的对象相等比较。
示例代码:
```java
String a = "hello";
String b = "hello";
if (a == b) {
System.out.println("a 和 b 的引用地址相同");
} else {
System.out.println("a 和 b 的引用地址不同");
}
if (a.equals(b)) {
System.out.println("a 和 b 的值相同");
} else {
System.out.println("a 和 b 的值不同");
}
```
输出结果为:
a 和 b 的引用地址相同
a 和 b 的值相同
因为字符串常量池中的字符串对象被缓存并重复使用,所以a和b的引用地址相同,而他们的值也相同。使用equals()方法比较值时,结果也是相同的。
阅读全文