Java基础中的比较运算符有哪些?

举报
wljslmz 发表于 2022/12/28 13:08:16 2022/12/28
【摘要】 上一篇文章介绍的操作运算符,本文介绍比较运算符。 一、概述在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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。