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)