主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

Java 运算符

Java 运算符是用于执行各种计算和操作的符号,它们在程序中起着至关重要的作用。

✅ Java 运算符主要分为以下几类:

  • 算术运算符 - 用于基本的数学运算
  • 赋值运算符 - 用于给变量赋值
  • 关系运算符 - 用于比较两个值
  • 逻辑运算符 - 用于布尔逻辑运算
  • 位运算符 - 用于操作二进制位
  • 条件运算符(三元运算符) - 用于条件语句判断
  • instanceof 运算符 - 用于检查对象是否是特定类的实例

Java 算术运算符

算术运算符是 Java 中最基础的运算符之一,用于执行基本的数学运算。

它们可以对变量或常量进行加、减、乘、除、取模等操作,但在运算时需要注意数据类型转换和运算精度问题。

运算符类型 运算符 名称 描述(含示例)
二元运算符 + 加法 相加两个操作数
示例:5 + 3 = 8(字符串时执行连接:"A" + "B" → "AB")
- 减法 相减两个操作数
示例:5 - 3 = 2
* 乘法 相乘两个操作数
示例:5 * 3 = 15
/ 除法 相除两个操作数
示例:5 / 2 = 2(整数除法舍去小数),5.0 / 2 = 2.5(浮点数保留小数)
% 取模 返回除法运算的余数
示例:5 % 2 = 1(符号与被除数相同:-5 % 2 = -1)
一元运算符 + 一元加 表示正值(通常省略)
示例:+5 表示正5
- 一元减 表示负值或改变符号
示例:-5 表示负5,-(-3) = 3
++ 递增 将值增加 1
示例:a=5; a++ → 6(后置),++a → 6(前置)
-- 递减 将值减少 1
示例:a=5; a-- → 4(后置),--a → 4(前置)

使用实例

✅ 下面是简单的 Java 算数运算符 使用实例:

public class Test {

  public static void main(String[] args) {
     int a = 10, b = 20, c = 25, d = 25;
     System.out.println("a + b = " + (a + b));
     System.out.println("a - b = " + (a - b));
     System.out.println("a * b = " + (a * b));
     System.out.println("b / a = " + (b / a));
     System.out.println("b % a = " + (b % a));
     System.out.println("c % a = " + (c % a));
     System.out.println("a++   = " + (a++));
     System.out.println("a--   = " + (a--));

     // 查看  d++ 与 ++d 的不同
     System.out.println("d++   = " + (d++));
     System.out.println("++d   = " + (++d));
  }
}

💻 下面是实例编译运行后,输出的结果:

a + b = 30
a - b = -10
a * b = 200
b / a = 2
b % a = 0
c % a = 5
a++   = 10
a--   = 11
d++   = 25
++d   = 27

Java 赋值运算符

算术运算符是 Java 中最基础的运算符之一,用于给变量赋值。

它能够实现基本的变量赋值,还能结合算术运算进行复合赋值操作,但在使用时需要注意数据类型兼容性和隐式类型转换的问题。

赋值符类型 运算符 名称 描述(含示例)
基本赋值 = 简单赋值 将右侧的值赋给左侧变量
示例:int a = 10;
算术复合赋值 += 加后赋值 先相加再赋值
示例:a += 5; // 等价于 a = a + 5
-= 减后赋值 先相减再赋值
示例:b -= 3; // 等价于 b = b - 3
*= 乘后赋值 先相乘再赋值
示例:c *= 2; // 等价于 c = c * 2
/= 除后赋值 先相除再赋值
示例:d /= 4; // 等价于 d = d / 4
%= 取模后赋值 先取模再赋值
示例:e %= 3; // 等价于 e = e % 3
位运算复合赋值 &= 按位与后赋值 先按位与再赋值
示例:f &= 0x0F; // 等价于 f = f & 0x0F
|= 按位或后赋值 先按位或再赋值
示例:g |= 0x01; // 等价于 g = g | 0x01
^= 按位异或后赋值 先按位异或再赋值
示例:h ^= mask; // 等价于 h = h ^ mask
<<= 左移后赋值 先左移再赋值
示例:i <<= 2; // 等价于 i = i << 2
>>= 右移后赋值 先右移再赋值
示例:j >>= 1; // 等价于 j = j >> 1
>>>= 无符号右移后赋值 先无符号右移再赋值
示例:k >>>= 3; // 等价于 k = k >>> 3

使用实例

✅ 下面是简单的 Java 赋值运算符 使用实例:

public class Test {

  public static void main(String[] args) {
     int a = 10, b = 20, c = 25, d = 25;
     System.out.println("a + b = " + (a + b));
     System.out.println("a - b = " + (a - b));
     System.out.println("a * b = " + (a * b));
     System.out.println("b / a = " + (b / a));
     System.out.println("b % a = " + (b % a));
     System.out.println("c % a = " + (c % a));
     System.out.println("a++   = " + (a++));
     System.out.println("a--   = " + (a--));

     // 查看  d++ 与 ++d 的不同
     System.out.println("d++   = " + (d++));
     System.out.println("++d   = " + (++d));
  }
}

💻 下面是实例编译运行后,输出的结果:

a + b = 30
a - b = -10
a * b = 200
b / a = 2
b % a = 0
c % a = 5
a++   = 10
a--   = 11
d++   = 25
++d   = 27

Java 关系运算符

关系运算符用于比较两个值之间的关系,并返回一个布尔值(truefalse)。

常用于条件语句和循环控制结构中,是 Java 编程中的基础组成部分。

运算符 名称 描述(含示例)
== 等于 比较两个值是否相等,如:5 == 5 返回 true
!= 不等于 比较两个值是否不相等,如:5 != 3 返回 true
> 大于 比较左侧值是否大于右侧值,如:6 > 5 返回 true
< 小于 比较左侧值是否小于右侧值,如:4 < 5 返回 true
>= 大于等于 比较左侧值是否大于或等于右侧值,如:5 >= 5 返回 true
<= 小于等于 比较左侧值是否小于或等于右侧值,如:5 <= 5 返回 true

使用实例

✅ 下面通过关系运算符使用实例,深入了解关系运算符用法:

public class RelationOperatorsDemo {
    public static void main(String[] args) {
        int a = 10, b = 5;

        System.out.println(a + " == " + b + " : " + (a == b));  // false
        System.out.println(a + " != " + b + " : " + (a != b));  // true
        System.out.println(a + " > " + b + "  : " + (a > b));   // true
        System.out.println(a + " < " + b + "  : " + (a < b));   // false
        System.out.println(a + " >= " + b + " : " + (a >= b));  // true
        System.out.println(a + " <= " + b + " : " + (a <= b));  // false
    }
}

💻 下面是实例编译运行后,输出的结果:

10 == 5 : false
10 != 5 : true
10 > 5  : true
10 < 5  : false
10 >= 5 : true
10 <= 5 : false

Java 逻辑运算符

逻辑运算符是用于对布尔值(true/false)进行逻辑运算的运算符。

它用于组合或修改布尔表达式,从而控制程序的流程(如ifwhile等条件判断)。

运算符 名称 描述(含示例)
&& 逻辑与 当且仅当两个操作数都为 true 时返回 true,如:true && false 返回 false
|| 逻辑或 当任一操作数为 true 时返回 true,如:true || false 返回 true
! 逻辑非 对操作数取反,如:!true 返回 false

使用实例

✅ 下面通过逻辑运算符使用实例,深入了解逻辑运算符用法:

public class SimpleLogicalDemo {
    public static void main(String[] args) {
        // 定义两个布尔变量
        boolean a = true;
        boolean b = false;

        // 基本逻辑运算演示
        System.out.println("a && b: " + (a && b));  // 与运算
        System.out.println("a || b: " + (a || b));  // 或运算
        System.out.println("!a: " + (!a));          // 非运算

        // 短路特性演示
        System.out.println("\n短路特性演示:");
        int x = 5;
        if(a || x++ > 0) {}  // a为true,不会执行x++
        System.out.println("x=" + x);  // 输出5

        // 异或运算演示
        System.out.println("\n异或运算演示:");
        System.out.println("true ^ false: " + (true ^ false));  // true
        System.out.println("true ^ true: " + (true ^ true));    // false
    }
}

💻 下面是实例编译运行后,输出的结果:

a && b: false
a || b: true
!a: false

短路特性演示:
x=5

异或运算演示:
true ^ false: true
true ^ true: false

Java 位运算符

位运算符是直接对二进制位进行操作的运算符。

它们直接在数字的底层二进制表示上进行运算,而不是像算术运算符那样对数值本身进行操作。

运算符 名称 描述(含示例)
& 按位与 对两个数的二进制位进行与运算,如:5 & 3 返回 1
| 按位或 对两个数的二进制位进行或运算,如:5 | 3 返回 7
^ 按位异或 对两个数的二进制位进行异或运算,如:5 ^ 3 返回 6
~ 按位取反 对一个数的二进制位进行取反,如:~5 返回 -6
<< 左移 将二进制位向左移动指定位数,如:5 << 1 返回 10
>> 右移 将二进制位向右移动指定位数(保留符号位),如:5 >> 1 返回 2
>>> 无符号右移 将二进制位向右移动指定位数(不保留符号位),如:-5 >>> 1 返回 2147483645

使用实例

✅ 下面通过位运算符使用实例,深入了解位运算符用法:

public class SimpleBitwiseDemo {
    public static void main(String[] args) {
        // 基本位运算演示
        System.out.println("5 & 3 = " + (5 & 3));  // 0101 & 0011 = 0001 (1)
        System.out.println("5 | 3 = " + (5 | 3));  // 0101 | 0011 = 0111 (7)
        System.out.println("5 ^ 3 = " + (5 ^ 3));  // 0101 ^ 0011 = 0110 (6)
        System.out.println("~5 = " + (~5));       // ~0101 = 1010 (-6)

        // 移位运算演示
        System.out.println("5 << 1 = " + (5 << 1)); // 0101 << 1 = 1010 (10)
        System.out.println("7 >> 1 = " + (7 >> 1)); // 0111 >> 1 = 0011 (3)
        System.out.println("-8 >>> 1 = " + (-8 >>> 1)); // 无符号右移

        // 实用技巧演示
        System.out.println("10是" + ((10 & 1) == 0 ? "偶数" : "奇数")); // 判断奇偶
    }
}

💻 下面是实例编译运行后,输出的结果:

5 & 3 = 1
5 | 3 = 7
5 ^ 3 = 6
~5 = -6
5 << 1 = 10
7 >> 1 = 3
-8 >>> 1 = 2147483644
10是偶数

Java 条件运算符(三元运算符)

条件运算符 (?:) 是唯一的三元运算符(需要三个操作数)它提供了一种简洁的条件判断方式。

条件运算符使用语法:condition ? expression1 : expression2

使用实例

✅ 下面通过条件运算符 (?:) 使用实例,深入了解条件运算符用法:

public class Main {
    public static void main(String[] args) {
        int a = 10, b = 20;
        int max = (a > b) ? a : b;  // max = 20
        System.out.println("最大值为: " + max);  // 输出: 最大值为: 20
    }
}

💻 下面是实例编译运行后,输出的结果:

最大值为: 20

Java instanceof 运算符

instanceof 是一个二元运算符,用于检查一个对象是否是指定类型(类、子类或接口)的实例。

instanceof 运算符使用语法:object instanceof Type

  • 如果object是 Type 类型或其子类型的实例,返回 true,否则返回 false
  • 如果objectnull,返回 false

使用实例

✅ 下面通过instanceof使用实例,深入了解instanceof用法:

class Animal {}
class Dog extends Animal {}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Dog();

        System.out.println(animal instanceof Animal);  // true
        System.out.println(animal instanceof Dog);     // true
        System.out.println(animal instanceof Object);  // true

        String str = "Hello";
        System.out.println(str instanceof String);     // true
        System.out.println(str instanceof Object);     // true

        Animal a = null;
        System.out.println(a instanceof Animal);       // false (因为a是null)
    }
}

💻 下面是实例编译运行后,输出的结果:

true
true
true
true
true
false

Java 运算符优先级

Java 运算符的优先级决定了表达式中运算符的执行顺序。

✅ 以下是 Java 运算符的完整优先级表,从最高优先级到最低优先级:

优先级 运算符 描述 结合性
1 ()[].:: 括号、数组下标、成员访问、方法引用 从左到右
2 ++--+-~!(type) 后置/前置递增递减、正负号、按位取反、逻辑非、类型转换 从右到左
3 new 对象创建 从右到左
4 */% 乘法、除法、取模 从左到右
5 +- 加法、减法 从左到右
6 <<>>>>> 位左移、右移、无符号右移 从左到右
7 <<=>>=instanceof 关系运算符、类型比较 从左到右
8 ==!= 相等性比较 从左到右
9 & 按位与 从左到右
10 ^ 按位异或 从左到右
11 | 按位或 从左到右
12 && 逻辑与 从左到右
13 || 逻辑或 从左到右
14 ?: 三元条件运算符 从右到左
15 =+=-=*=/=%=&=|=^=<<=>>=>>>= 赋值运算符 从右到左


评论区 0
发表评论
教程介绍
Java 通用高级编程语言,广泛应用在企业级应用开发、移动应用开发、大数据处理等领域。
12 章节
49 阅读
0 评论