Java 运算符(详解)

一、简介

在 Java 中,运算符是用来对数据进行操作和处理的符号,这些符号能使得 Java 程序进行各种数学计算、条件判断和数据处理,从而实现丰富的功能和逻辑。


二、算术运算符

运算符含义
+加法
-减法
*乘法
/除法
取余
public class Main {
    public static void main(String[] args) {
        int a = 15;
        int b = 4;

        // 算法运算符
        System.out.println("加法:" + (a + b));
        System.out.println("减法:" + (a - b));
        System.out.println("乘法:" + (a * b));
        System.out.println("除法:" + (a / b));
        System.out.println("取余:" + (a % b));
    }
}

运行结果:

加法:19
减法:11
乘法:60
除法:3
取余:3

三、自增自减运算符

  • 自增运算符 ++:
    • 前缀自增( ++a ):先将变量的值增加 1,然后再使用变量的值进行其他操作。
    • 后缀自增( a++ ):先使用变量的值进行其他操作,然后再将变量的值增加 1。
  • 自减运算符 --:
    • 前缀自减( --a ):先将变量的值减少 1,然后再使用变量的值进行其他操作。
    • 后缀自减( a-- ):先使用变量的值进行其他操作,然后再将变量的值减少 1。
public class Main {
    public static void main(String[] args) {
        int a = 10;

		// 自增自减运算符
        System.out.println("后缀自增:" + a++);
        System.out.println("前缀自增:" + ++a);
        
        System.out.println("后缀自减:" + a--);
        System.out.println("前缀自减:" + --a);
    }
}

运行结果:

后置自增:10
前置自增:12
后置自减:12
前置自减:10

四、关系运算符

运算符含义
>判断左边的值是否大于右边的值
<判断左边的值是否小于右边的值
>=判断左边的值是否大于等于右边的值
<=判断左边的值是否小于等于右边的值
==判断左右两边的值是否相等
!=判断左右两边的值两个值是否不相等
public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        // 关系运算符
        System.out.println("大于:" + (a > b));
        System.out.println("小于:" + (a < b));
        System.out.println("大于等于:" + (a >= b));
        System.out.println("小于等于:" + (a <= b));
        System.out.println("等等于:" + (a == b));
        System.out.println("不等于:" + (a != b));
    }
}

运行结果:

大于:false
小于:true
大于等于:false
小于等于:true
等等于:false
不等于:true

五、逻辑运算符

运算符含义
&&逻辑与,都为 true 时,结果才为 true,否则为 false
||逻辑或,有一个为 true,结果就为 true,两个都为 false 时,结果才为 false。
^逻辑异或,相同为 false,不同为 true
!逻辑非,对结果去反,true 变 false,false 变 true
public class Main {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;

        // 逻辑运算符
        System.out.println("逻辑与:" + (a && b));
        System.out.println("逻辑或:" + (a || b));
        System.out.println("逻辑异或:" + (a ^ b));
        System.out.println("逻辑非:" + (!a));
    }
}

运行结果:

逻辑与:false
逻辑或:true
逻辑异或:true
逻辑非:false

六、位运算符

运算符含义
按位于,相对应的二进制都为 1,则结果位为 1,否则为 0
|按位或,相对应的二进制只要有一个为 1,结果位就为 1,都为 0,结果位,才为 0
^按位异或,相对应的二进制位不同时,结果位为 1,相同时为 0。
按位取反,将操作数的二进制位取反,0 变 1,1 变 0。
<<左移,将操作数的二进制位向左移动指定的位数,右边补 0 (左移一位相当于乘二)
>>右移,将操作数的二进制位向右移动指定的位数,如果操作数为正数,左边补 0;如果为负数,左边补 1 (右移一位相当于除二)
>>>无符号右移,无论操作数的正负,左边都补 0 (右移一位相当于除二)
public class Main {
    public static void main(String[] args) {
        int a = 5; // 二进制:0000 0101
        int b = 4; // 二进制:0000 0100

        // 位运算符
        System.out.println("按位与:" + (a & b)); // 二进制:0000 0100 = 4
        System.out.println("按位或:" + (a | b)); // 二进制:0000 0101 = 5
        System.out.println("按位异或:" + (a ^ b)); // 二进制:0000 0001 = 1
        System.out.println("按位取反:" + (~a)); // 二进制:1000 0110 = -6
        System.out.println("左移:" + (a << 2)); // 二进制:0001 0100 = 20
        System.out.println("右移:" + (a >> 1)); // 二进制:0000 0010 = 2
        System.out.println("无符号右移:" + (a >>> 1)); // 二进制:0000 0010 = 2
    }
}

运行结果:

按位与:4
按位或:5
按位异或:1
按位取反:-6
左移:20
右移:2
无符号右移:2

六、赋值运算符

运算符含义
=赋值运算符,将等号右边的值赋给左边
+=将右侧的值与左侧变量的值相加,并将结果赋给左侧变量
-=将右侧的值从左侧变量的值中减去,并将结果赋给左侧变量
*=将左侧变量的值乘以右侧的值,并将结果赋给左侧变量
/=将左侧变量的值除以右侧的值,并将结果赋给左侧变量
%=将左侧变量的值与右侧的值进行取余运算,并将结果赋给左侧变量
&=将左侧变量的值与右侧的值进行按位与运算,并将结果赋给左侧变量
|=将左侧变量的值与右侧的值进行按位或运算,并将结果赋给左侧变量
^=将左侧变量的值与右侧的值进行按位异或运算,并将结果赋给左侧变量
<<=将左侧变量的值左移指定的位数,并将结果赋给左侧变量
>>=将左侧变量的值右移指定的位数,并将结果赋给左侧变量
>>>=将左侧变量的值无符号右移指定的位数,并将结果赋给左侧变量
public class Main {
    public static void main(String[] args) {
        int num = 10;

        // 赋值运算符
        num += 5;
        System.out.println("+=:" + num);
        num -= 3;
        System.out.println("-=:" + num);
        num *= 2;
        System.out.println("*=:" + num);
        num /= 4;
        System.out.println("/=:" + num);
        num %= 5;
        System.out.println("%=:" + num);
    }
}

运行结果:

+=15
-=12
*=24
/=6
%=1

七、条件运算符

在 Java 中,条件运算符也称为三元运算符,作用是根据条件表达式的值选择两个表达式中的一个,类似于 if…else

public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        // 三目运算符
        System.out.println("最大值:" + ((a > b) ? a : b));  // a 不大于 b,所以返回 b 的值
    }
}

运行结果:

最大值:20

八、字符串连接符

在 Java 中,加号(+)也可以用作字符串连接符,作用是连接两个或多个字符串。

public class Main {
    public static void main(String[] args) {
        String a = "Hello ";
        String b = "World";

        // 字符串连接符
        System.out.println("字符串连接符:" + (a + b) + " (" + 2024 + ")");
    }
}

运行结果:

连接符:Hello World (2024)

九、运算符优先级

当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。

优先级运算符
1( ) [ ]  .
2!  ~  ++  –
3*  /  %
4+  -
5<<  >>  >>>
6<  <=  >  >=  instanceof
7==  !=
8&
9^
10|
11&&
12|
13? :
14=  +=  -=  *=  /=  %=  &=
15

运算符的优先级不需要全部记住,你只要知道当你想要改变运算符执行的顺序时, 小括号 的优先级是最高的即可。


  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野生派蒙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值