Java基础中的比较运算符有哪些?
【摘要】 上一篇文章介绍的操作运算符,本文介绍比较运算符。 一、概述在Java中一般有以下比较运算符:操作符示例解释>x > y如果 x 大于 y,则返回 true。>=x >= y如果 x 大于或等于 y,则返回 true。<x < y如果 x 小于 y,则返回 true。<=x <= y如果 x 小于或等于 y,则返回 true。==x == y如果 x 等于 y,则返回 true。!=x != ...
上一篇文章介绍的操作运算符,本文介绍比较运算符。
一、概述
在Java中一般有以下比较运算符:
操作符 | 示例 | 解释 |
---|---|---|
> | x > y | 如果 x 大于 y,则返回 true。 |
>= | x >= y | 如果 x 大于或等于 y,则返回 true。 |
< | x < y | 如果 x 小于 y,则返回 true。 |
<= | x <= y | 如果 x 小于或等于 y,则返回 true。 |
== | x == y | 如果 x 等于 y,则返回 true。 |
!= | x != y | 如果 x 和 y 不相等,则返回 true。 |
实例 | y的x实例 | 如果 x 与 y 属于同一类或 y 的子类,则返回 true。 |
代码示例:
package com.test.javaroads.operator;
/**
* @author: javaroads
* @date: 2022/12/1 16:44
* @description:
*/
public class Four {
public static void main(String[] args) {
int a = 100;
double b = 100.001D;
if (b > a) {
System.out.println("b > a 为" + (b > a));
}
if (b >= a) {
System.out.println("b >= a 为" + (b >= a));
}
if (a < b) {
System.out.println("a < b 为" + (a < b));
}
if (a <= b) {
System.out.println("a <= b 为" + (a <= b));
}
}
}
执行结果:
至于大小的比较,相信大家都知道结果,这里就不做解释了。
二、使用 == 和 !=
使用==和!=要注意:Java数据类型大致分为两种类型:基本类型和引用类型。在基本类型中使用==和!=是可以的,但在引用类型上使用时要小心。
==!=在引用类型上使用时需要注意:你不是在比较对象持有的值,而是对象引用的referrer是否相同,如果要比较对象持有的值,可以使用equals方法。
值相同、引用也相同:
值相同,但是引用不同:
我们直接上代码:
package com.test.javaroads.operator;
/**
* @author: javaroads
* @date: 2022/12/1 17:14
* @description:
*/
public class Five {
public static void main(String[] args) {
StringBuffer x = new StringBuffer("xyz");
StringBuffer y = x;
System.out.println("x和y比较为" + (x == y));
StringBuffer z = new StringBuffer("xyz");
StringBuffer w = new StringBuffer("xyz");
System.out.println("z和w比较为" + (z == w));
}
}
执行结果:
代码解释:
- 使用 new 运算符生成对象 x。
- 使用赋值运算符=将对象 x 复制到对象 y ,在这种情况下,只是将x的引用信息复制到y中,而不是在内存区域中重新分配y的区域。
- 将 x 和 y 与==运算符进行比较,返回 true 因为引用地址相同。
- 使用 new 运算符生成对象 z。
- 使用 new 运算符生成对象 w。
- 将 z 和 w 与==运算符进行比较,返回 false 因为值 abc 相同但有不同的 引用地址。
三、instanceof使用
instanceof是一个运算符,用于测试左操作数是否与右操作数属于同一类或子类,左操作数可以是任何对象引用表达式(变量等),右操作数可以是类、接口或数组类型。
我们通过代码演示一下:
父类:
package com.test.javaroads.operator;
/**
* @author: javaroads
* @date: 2022/12/1 17:38
* @description:
*/
public class Six {
public static void main(String[] args) {
SixSub sub = new SixSub();
if (sub instanceof Six) {
System.out.println("sub属于Six类");
} else {
System.out.println("sub不属于Six类");
}
}
}
子类:
package com.test.javaroads.operator;
/**
* @author: javaroads
* @date: 2022/12/1 17:38
* @description:
*/
public class SixSub extends Six {
}
执行父类的main方法:
代码解释:
- 声明并生成一个对象变量 sub,其值为 SixSub 类。
- 使用运算符检查对象变量 sub 是同一个类还是 Six 类的子类instanceof。返回 true,因为 sub 拥有的数据类型 SixSub 类是 Six 类的子类。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)