比较运算符
比较运算符用于比较两个数据的大小,在Java中常见的比较运算符有以下这些:
比较运算符号 | 名称 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
使用比较运算符时需要注意以下几点:
- >、<、>=、<= 只能比较数值类型。
- ==、!= 既能比较数值类型,也可以比较引用类型。
- ==和=千万不能混淆,一个是等于,另一个是赋值(初学编程经常犯的错误之一)。
== 运算符
上文提到了==、!= 既能比较数值类型,也可以比较引用类型。使用 == 运算符比较 Java 中的两个变量时,是在比较变量的内容。对于原始变量(例如int),是在对变量的值进行比较。而对于引用变量,则是对引用进行比较。只有当两个引用指向同一个对象时,引用比较的结果才为true。为了比较对象的内部内容,将使用特殊的equals方法实现。
实战演习
public class test
{
public static void main(String[] args) {
String s = new String("Hello World"); //创建字符串对象s,并赋值为"Hello World"
String s1 = s; //创建字符串对象s1,并指向s
String s2 = new String("Hello World"); //创建字符串对象s2,并赋值为"Hello World"
System.out.println(s == s1); //比较s、s1
System.out.println(s.equals(s1)); //比较s、s1的值
System.out.println(s == s2); //比较s、s2
System.out.println(s.equals(s2)); //比较s、s2的值
System.out.println(s1 == s2); //比较s1、s2
System.out.println(s1.equals(s2)); //比较s1、s2的值
}
}
在上述代码中,创建了字符串对象s,s1,s2。其中s与s2都赋值为"Hello World",s1对象指向了s。对三者进行两两对比,由于s与s1指向的是同一个对象,比较结果为ture;而s与s2是两个不同的对象,在进行== 运算符比较时,结果为false,而内部的值却是相等的,因此在使用equals方法比较时,结果为true。因为s1和s指向的是同一个对象,所以s1与s2的比较结果与s与s2的比较结果一致。
输出结果为:
true
true
false
true
false
true
总结
>、<、>=、<= 只能比较数值类型。而==、!= 既能比较数值类型,也可以比较引用类型。在使用 ==运算符进行比较时,要分清比较的对象是原始类型还是引用类型。对于原始类型(例如int),==运算符比较的是变量的值;对于引用类型,则是对引用对象进行比较。同时,注意 ==(比较运算符)与 =(赋值号)的区分,