Java基础篇--运算符

目录

算术运算符

赋值运算符

比较运算符

逻辑运算符

条件运算符(?:)

[instanceof 运算符](#instanceof 运算符)

Java运算符优先级

在程序中经常出现一些特殊符号,如+、-、*、=、>等,这些特殊符号称作运算符。运算符用于对数据进行算术运算、赋值运算和比较运算等。在Java中,运算符可分为算术运算符、赋值运算符、比较运算符、逻辑运算符等。

算术运算符

在数学运算中最常见的就是加减乘除,被称作四则运算。Java中的算术运算符就是用来处理四则运算的符号,算术运算符是最简单、最常用的运算符号。

算术运算符在使用时需要注意的问题:

  1. 在进行自增(++)和自减(--)运算时,如果运算符++或--放在操作数的前面,则先进行自增或自减运算,再进行其他运算。反之,如果运算符放在操作数的后面,则先进行其他运算再进行自增或自减运算。
  2. 在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个整数。如果除法运算有小数参与,得到的结果会是一个小数。例如,2510/1000属于整数之间相除,会忽略小数部分,得到的结果是2,而2.5/10的结果为0.25。
  3. 在进行取模(%)运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关。例如,(-5)%3=-2,而5%(-3)=2。

赋值运算符

赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量。

赋值运算符使用时的注意事项:

  1. 在Java中可以通过一条赋值语句对多个变量进行赋值,具体示例如下:

    复制代码
    int  x, y, z; 
    x = y = z = 5;	          // 为三个变量同时赋值

    在上述代码中,一条赋值语句将变量x,y,z的值同时赋值为5。需要注意的是,下面的这种写法在Java中是不可以的。

    复制代码
    int  x = y = z = 5;		// 这样写是错误的
  2. 除了"=",其他的都是特殊的赋值运算符,以"+="为例,x += 3就相当于x = x + 3,表达式首先会进行加法运算x+3,再将运算结果赋值给变量x。-=、*=、/=、%=赋值运算符都可以此类推。

比较运算符

比较运算符用于对两个数值或变量进行比较,比较运算结果是一个布尔值,即true或false。

比较运算符使用时的注意事项:

  1. 在比较运算中,不能将比较运算符"=="误写成赋值运算符"="。

逻辑运算符

逻辑运算符用于对布尔型的数据进行操作,其结果仍是一个布尔值。

使用逻辑运算符需要注意的问题:

  1. 逻辑运算符可以用于操作结果为布尔值的表达式。例如,x > 3 && y != 0表示当x大于3且y不等于0时,整个表达式结果为真(true)。
  2. 运算符&&&都表示逻辑与(AND)操作,它们在功能上是相同的,即只有当两边的操作数都为真时,结果才为真;否则,结果为假。但是它们在使用上存在一定区别。使用&进行与运算时,无论左边为真还是假,右边的表达式都会进行计算。而使用&&进行与运算时,当左边的表达式为假时,右边的表达式不再进行计算,这被称为短路与。
  3. 运算符|||都表示逻辑或(OR)操作。当运算符两边的任意一个表达式值为真时,结果为真;只有当两边表达式的值都为假时,结果才为假。类似于逻辑与操作,||运算符也是短路或。当||的左边表达式为真时,右边的表达式不再进行计算。
  4. 运算符^表示逻辑异或(XOR)操作。当运算符两边的布尔值相同时(都为真或都为假),结果为假;当两边表达式的布尔值不同时,结果为真。异或操作可以用于判断两个表达式的布尔值是否不同。

条件运算符(?:)

条件运算符(?:)是一种在表达式中根据条件的真假选择执行不同操作的运算符。

语法形式如下:

复制代码
condition ? expression1 : expression2
  • condition 是一个条件表达式,通常是一个逻辑表达式,用于判断条件的真假。
  • 如果 condition 为真(true),则计算并返回 expression1 的值。
  • 如果 condition 为假(false),则计算并返回 expression2 的值。

使用条件运算符可以提供简洁的条件判断和赋值功能。下面是一个示例:

java 复制代码
int num = 7;
int result = (num > 5) ? 10 : 20;

在上述示例中,我们首先定义了一个变量 num 并赋值为 7。然后,通过条件运算符判断 num 是否大于 5。如果是,将结果赋值为 10;否则将结果赋值为 20。由于**num** 的值为 7,大于 5,因此最终 result 的值将是 10。

需要注意的是,条件运算符的两个表达式 expression1expression2 应该具有相同的类型或存在隐式转换关系,以保证类型兼容性。

instanceof 运算符

instanceof 运算符是用于判断一个对象是否属于某个特定类或其子类的实例。

它的语法形式如下:

java 复制代码
object instanceof Class
  • object 是要判断的对象,Class 是要检查的类名。
  • 当使用 instanceof 运算符时,它会检查 object 是否为 Class 类或其子类的实例。如果是,运算符返回 true;如果不是,返回 false。

下面是一个示例:

java 复制代码
class Animal {}

class Dog extends Animal {}

class Cat extends Animal {}

Animal animal = new Animal();
Dog dog = new Dog();
Cat cat = new Cat();

System.out.println(animal instanceof Animal);  // 输出 true
System.out.println(dog instanceof Animal);     // 输出 true
System.out.println(cat instanceof Animal);     // 输出 true
System.out.println(dog instanceof Dog);        // 输出 true
System.out.println(cat instanceof Dog);        // 输出 false

在上述示例中,定义了一个父类 Animal 和两个子类 Dog 和 Cat。通过使用 instanceof 运算符,我们可以确定对象是否属于某个类或其子类的实例。

Java运算符优先级

在对一些比较复杂的表达式进行运算时,要明确表达式中所有运算符参与运算的先后顺序,通常把这种顺序称作运算符的优先级。

下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。

相关推荐
脑子慢且灵17 分钟前
【JavaWeb】一个简单的Web浏览服务程序
java·前端·后端·servlet·tomcat·web·javaee
青铜发条17 分钟前
【Qt】PyQt、原生QT、PySide6三者的多方面比较
开发语言·qt·pyqt
B612 little star king39 分钟前
力扣29. 两数相除题解
java·算法·leetcode
野犬寒鸦40 分钟前
力扣hot100:环形链表(快慢指针法)(141)
java·数据结构·算法·leetcode·面试·职场和发展
上官浩仁1 小时前
springboot synchronized 本地锁入门与实战
java·spring boot·spring
Gogo8161 小时前
java与node.js对比
java·node.js
SmartJavaAI1 小时前
Java调用Whisper和Vosk语音识别(ASR)模型,实现高效实时语音识别(附源码)
java·人工智能·whisper·语音识别
用户3721574261351 小时前
Python 高效实现 Word 转 PDF:告别 Office 依赖
java
渣哥1 小时前
Java ThreadPoolExecutor 动态调整核心线程数:方法与注意事项
java
Miraitowa_cheems1 小时前
LeetCode算法日记 - Day 38: 二叉树的锯齿形层序遍历、二叉树最大宽度
java·linux·运维·算法·leetcode·链表·职场和发展