“我想告诉你一些有关在 Java 中比较变量的信息。”

“你已经知道了最简单的比较运算符 – 小于 (<) 和大于 (>)。”

“是的。”

“另外还有一些运算符,如等于 (==) 和不等于 (!=),以及小于等于 (<=) 和大于等于 (>=)。”

“现在变得越来越有趣了。”

“请注意,Java 中没有 =< 或 => 运算符!”

"= 符号用于赋值操作。这是使用两个等号 (==) 来测试是否相等的原因。要检查变量是否不相等,请使用 != 运算符。”

“我明白了。”

“使用 == 运算符比较 Java 中的两个变量时,是在比较变量的内容。”

“因此,对于原始变量,是对变量的值进行比较。”

“对于引用变量则是对引用进行比较。假定我们有几个相同但有区别的对象。由于对它们的引用不同,因此比较之后将显示不相等,即比较结果为 false只有当两个引用指向同一对象时,引用比较结果才为 true

“为了比较对象的内部内容,我们使用特殊的 equals 方法。即使没有声明,编译器也会将此方法(以及该 Object 类的所有方法)添加到你的类中。现在来看几个示例:”

代码 说明
1
int a = 5;
int b = 5;
System.out.println(a == b);
比较原始类型。
将在屏幕上显示 true
2
Cat cat1 = new Cat("奥斯卡");
Cat cat2 = cat1;
System.out.println(cat1 == cat2);
比较引用
将在屏幕上显示 true
两个变量存储对同一对象的引用。
3
String s = new String("妈妈");
String s2 = s;
System.out.println(s == s2);
比较引用
将在屏幕上显示 true
两个变量存储对同一对象的引用。
4
Cat cat1 = new Cat("奥斯卡");
Cat cat2 = new Cat("奥斯卡");
System.out.println(cat1 == cat2);
比较引用
将在屏幕上显示 false
两个变量引用相同的 Cat 对象,都不是同一个对象。
5
String s = new String("妈妈");
String s2 = new String("妈妈");
System.out.println(s == s2);
比较引用
将在屏幕上显示 false
两个变量引用相同的 String 对象,但不是同一个对象。
6
String s = new String("妈妈");
String s2 = new String("妈妈");
System.out.println(s.equals(s2));
比较对象
将在屏幕上显示 true
两个变量引用相同的 String 对象

“哦,我差点忘了!这里还有几道练习题需要你做:”