有两个引用变量t1和t2,如果 t1 == t2为true, 那么t1.equals(t2)也一定为true。举一个基本数据类型的反例子
时间: 2024-10-12 16:16:44 浏览: 35
U201814655-CS1806-杨雨鑫-第19章编程题1
当你提到两个引用变量`t1`和`t2`,它们通常用于引用对象实例。对于基本数据类型如int、char等,在Java中,`==`操作符比较的是对象的内存地址,而`.equals()`方法则是比较对象的内容是否相等。例如:
```java
int a = 5;
int b = 5;
// 这里,t1和t2是int类型的原始值,它们指向的是同一个内存位置,所以 t1 == t2 是 true
boolean condition1 = t1 == t2; // condition1 的结果是 true
// 但是,对int类型来说,.equals() 永远不会被调用,因为int没有equals方法
boolean condition2 = t1.equals(t2); // condition2 的结果是 false,这里会报错,因为int类型不支持equals()
// 如果t1和t2是 String 类型,比如
String s1 = "hello";
String s2 = "hello";
// 则 condition1 依然为 true,因为字符串常量池里的"hello"只有一个,condition2 也为 true,因为它们内容相同
```
所以,对于基本数据类型,`==`和`.equals()`在比较上会有显著区别,`==`比较地址,`.equals()`比较内容。
阅读全文