【2023,学点儿新Java-43】比较运算符(关系运算符)==、!=、<、>、<=、>=、instanceof | 区分==和=的区别 |

前情提要:

  • 【2023,学点儿新Java-42】赋值运算符 及其 基础练习(含整体分析解释,适合小白学习哦)| 复合赋值操作符:“+=“、“++“、“*=“的综合应用
  • 【2023,学点儿新Java-41】(习题课)简单测试:算术运算符的使用 | 基础练习:分离某整数的各个数位(如个位数、十位数、百位数等)| 小时转换 | 自加 | “溢出”练习 | 企业真题
  • 【2023,学点儿新Java-40】运算符及其分类:按照功能分类、按照操作数分类 | 初步了解:Lambda运算符及其特点 | 算术运算符基本语法及案例
  • 更多系列文章,可参阅本专栏或博主主页哦~

 
历史总是惊人的相似,只有经过混沌我们才能开出一片新的天地。成长,大概也是这样吧!

 

作者主页: 追光者♂

        

个人简介:
 
[1] 计算机专业硕士研究生
 
[2] 2022年度博客之星人工智能领域TOP4
 
[3] 阿里云社区特邀专家博主
 
[4] CSDN-人工智能领域优质创作者
 
[5] 预期2023年10月份 · 准CSDN博客专家  
 

  • 无限进步,一起追光!!!

        

感谢大家 点赞  收藏⭐   留言!!!

        

本篇初步介绍Java中的比较运算符,如相似性比较中的==、!=符号,关系比较中的<、>、<=、>=符号,引用比较的instanceof等,此外用具体示例说明==和=的区别。

目录

  • ☄️比较运算符(关系运算符)
    • 1.1 基本描述
    • 1.2 Java中常用的比较运算符
    • 1.3 比较运算符——示例
    • 1.4 区分 ==和=的区别
    • 1.5 附:instanceof 简介

☄️比较运算符(关系运算符)

1.1 基本描述

比较运算符,也称为关系运算符。

  • 比较运算符的结果都是boolean型,也就是要么是true,要么是false

  • > < >= <= :只适用于基本数据类型(除boolean类型之外)

    == != :适用于 基本数据类型和引用数据类型

  • 比较运算符“==”不能误写成“=

我们可用下图来对比较运算符做一个简要的概述:

【2023,学点儿新Java-43】比较运算符(关系运算符)==、!=、<、>、<=、>=、instanceof | 区分==和=的区别 |_第1张图片

1.2 Java中常用的比较运算符

在Java中,比较运算符用于比较两个值的大小或相等性,并返回一个布尔值(truefalse)。以下是Java中常用的比较运算符:

  1. 相等性比较:

    • ==:检查两个操作数是否相等。
    • !=:检查两个操作数是否不相等。
  2. 关系比较:

    • <:检查左操作数是否小于右操作数。
    • >:检查左操作数是否大于右操作数。
    • <=:检查左操作数是否小于或等于右操作数。
    • >=:检查左操作数是否大于或等于右操作数。
  3. 引用比较:

    • instanceof:检查一个对象是否属于某个指定类型或其子类型。

需要注意的是,比较运算符通常用于基本数据类型的比较,例如整数(intlong等)、浮点数(floatdouble等)以及字符(char)等。

而对于引用类型(类、接口、数组等),比较运算符通常比较的是对象的引用是否相等,而非对象的内容。如果需要比较对象的内容,可以使用对象的方法(如 equals() 方法)进行自定义的比较。

以下是一些示例用法:

int a = 2;
int b = 3;
boolean isEqual = (a == b);  // false

String str1 = "Hello";
String str2 = "Hello";
boolean isSameString = (str1 == str2);  // true

Object obj1 = new Object();
Object obj2 = new Object();
boolean isSameObject = (obj1 == obj2);  // false

if (a < b) {
    // 执行此代码块
} else if (a > b) {
    // 不执行此代码块
} else {
    // 不执行此代码块
}

在上面的示例中,我们使用了不同的比较运算符对变量进行比较,并根据比较结果执行相应的逻辑。例如,(a == b) 的结果为 false,所以 isEqual 的值为 false。另外,(str1 == str2) 的结果为 true,因为 str1str2 引用的是相同的字符串对象。

比较运算符在控制流语句(如 ifwhile)以及排序算法等场景中非常常见,它们能够帮助我们进行条件判断和排序操作。

1.3 比较运算符——示例

/*
测试运算符的使用3:比较运算符

1.  ==  !=  >   <   >=   <=  instanceof

2. 说明
① instanceof 在面向对象的多态性的位置(详细)讲解。
② ==  !=  >   <   >=   <= 适用于基本数据类型。(细节:>   <   >=   <=不适用于boolean类型)
  运算的结果为boolean类型。
③ 了解: ==  !=  可以适用于引用数据类型
④ 区分:== 与 = 

*/

class CompareTest {
	public static void main(String[] args) {
		int i1 = 10;
		int i2 = 20;
		
		System.out.println(i1 == i2);//false
		System.out.println(i1 != i2);//true
		System.out.println(i1 >= i2);//false


		int m = 10;
		int n = 20;
		System.out.println(m == n);//false
		System.out.println(m = n);//20

		boolean b1 = false;
		boolean b2 = true;
		System.out.println(b1 == b2);//false
		System.out.println(b1 = b2);//true
	}
}

输出结果:

【2023,学点儿新Java-43】比较运算符(关系运算符)==、!=、<、>、<=、>=、instanceof | 区分==和=的区别 |_第2张图片

1.4 区分 ==和=的区别

boolean b1 = false;
if(b1 == true)  //if(b1 = true)
	System.out.println("结果为真");
else
	System.out.println("结果为假");

我们分析一下执行过程:

  1. 定义一个布尔型变量 b1,并赋值为 false

  2. 执行条件语句 if(b1 == true)。在条件判断中,比较 b1 的值与 true 的值是否相等。

    • 因为 b1 的值为 false,而不是 true,所以判断条件为假。进入 else 分支。
  3. 执行 System.out.println("结果为假"); 将字符串 “结果为假” 输出到控制台。


反之,若对if中的条件稍加修改:将 b1 == true 修改为 b1 = true

boolean b1 = false;
if(b1 = true)
	System.out.println("结果为真");
else
	System.out.println("结果为假");

我们也分析一下上述代码的执行过程:

  1. 定义一个布尔型变量 b1,并赋值为 false

  2. 执行条件语句 if(b1 = true)在条件判断中,使用了赋值操作符 =

    • 赋值操作符 = 用于给变量赋值。在此处,将 b1 的值更新为 true

    • 赋值表达式的结果是被赋的值,所以 (b1 = true) 的表达式结果为 true

  3. 执行 System.out.println("结果为真"); 将字符串 “结果为真” 输出到控制台。

也就是说,代码执行后的输出结果为 “结果为真”。

因为条件表达式 b1 = true 的结果为 true,所以执行了 if 分支中的代码。需要注意的是,这里的 if 条件中使用的是赋值操作符 = 而不是相等操作符 ==,所以实际上将 b1 的值更新为了 true

1.5 附:instanceof 简介

在Java中,instanceof 是一个用于检查对象是否属于某个指定类型或其子类型的比较运算符。它的语法格式为:

object instanceof type

其中,object 是要检查类型的对象,而 type 是要比较的类型。

instanceof 运算符的返回结果是一个布尔值,如果 objecttypetype 的子类的实例,则返回 true,否则返回 false

下面是一些示例用法:

class Vehicle {}

class Car extends Vehicle {}

class Motorcycle extends Vehicle {}

public class Main {
    public static void main(String[] args) {
        Vehicle vehicle = new Car();
        System.out.println(vehicle instanceof Vehicle);      // true
        System.out.println(vehicle instanceof Car);          // true
        System.out.println(vehicle instanceof Motorcycle);   // false
        
        Vehicle otherVehicle = new Motorcycle();
        System.out.println(otherVehicle instanceof Vehicle);      // true
        System.out.println(otherVehicle instanceof Car);          // false
        System.out.println(otherVehicle instanceof Motorcycle);   // true
        
        Vehicle differentVehicle = new Vehicle();
        System.out.println(differentVehicle instanceof Vehicle);      // true
        System.out.println(differentVehicle instanceof Car);          // false
        System.out.println(differentVehicle instanceof Motorcycle);   // false
    }
}

在上面的代码中,我们定义了一个 Vehicle 类及其子类 CarMotorcycle。通过使用 instanceof 运算符,我们可以检查不同的对象与类型之间的关系。例如,vehicle instanceof Vehicle 返回 true,因为 vehicleVehicle 类的实例;而 vehicle instanceof Motorcycle 返回 false,因为 vehicle 不是 Motorcycle 类的实例。

instanceof 运算符常用于面向对象编程中的类型检查和类型转换。它可以帮助我们在运行时判断对象的实际类型,从而进行相应的操作或逻辑判断。

 


 

热门专栏推荐

  • Python&AI专栏:【Python从入门到人工智能】
  • 前端专栏:【前端之梦~代码之美(H5+CSS3+JS.】
  • 文献精读&项目专栏:【小小的项目 (实战+案例)】
  • C语言/C++专栏:【C语言、C++ 百宝书】(实例+解析)
  • Java系列(Java基础/进阶/Spring系列/Java软件设计模式等)
  • 问题解决专栏:【工具、技巧、解决办法】
  • 加入Community 一起追光:追光者♂社区

 

持续创作优质好文ing…✍✍✍

 

记得一键三连哦!!!

 

求关注!求点赞!求个收藏啦!

在这里插入图片描述

你可能感兴趣的:(比较运算符,JavaSE系列教程,instanceof,==,Java最新教程,布尔型变量,关系运算符)