Java中的运算符

可以将大部分Java运算符划分为四组:算术运算符、逻辑运算符、关系运算符以及位运算符。

算术运算符

运算符

结  果

+

加法(也是一元加号)

-

减法(也是一元负号)

*

乘法

/

除法

%

求模/取余

+=

加并赋值

-=

减并赋值

*=

乘并赋值

/=

除并赋值

%=

求模并赋值

++

自增

--

自减

注意:

1.整数除以整数结果还是整数

2.求模运算符%,返回除法操作的余数。它既可以用于浮点数也可以用于整数。

表达式:

由操作数与运算符组成,有具体值(注意数据类型)

表达式中的类型提升规则:

表达式的类型会自动提升为所有操作数的最大类型。

对于操作数全为非long类型整数的表达式,其类型会自动提升为int。

逻辑运算符

布尔逻辑运算符,只能操作boolean型操作数。

运算符

结  果

&&

逻辑与(短路形式)

||

逻辑或(短路形式)

^

逻辑异或

!

逻辑一元非

&

逻辑与

|

逻辑或

布尔逻辑运算规则:

操作数

逻辑运算及结果

A

B

A || B

A && B

!A

A ^ B

false

false

false

false

true

false

true

false

true

false

false

true

false

true

true

false

true

true

true

true

true

true

false

false

运算规则说明:

对于||,只要有一个操作数为true,则结果为true;

对于&&,只要有一个操作数为false,则结果为false。

对于^,两个操作数不同,则结果为true,否则结果为false。

注意:&&和||,

这两个运算符是所谓短路形式的逻辑运算符。假如单独根据左操作数就能确定表达式的结果,那么就不会计算右操作数的值。

三目运算符(三元)

语法:表达式1?表达式2:表达式3

表达式1必须是boolean类型的表达式

如果结果为true,那么取表达式2的结果

如果结果为false,那么取表达式3的结果

关系运算符

运算符结果
==等于
!=不等于
>大于
<小于
>=大于或等于
<=小于或等于

位运算符

运算符结果
~按位取反
&按位与
|按位或
^按位异或
>>向右移动(有符号)
>>>向右移动(无符号)
<<向左移动

1.判断 &,|,^ 是逻辑运算符还是位运算符,主要看其左右连接的是什么。连接布尔型操作数的是逻辑运算符,连接具体数值的是位运算符。

2.移动时计算机会将输入的十进制数转化为二进制进行计算。

<<

public class Testx {
    public static void main(String[] args) {
        System.out.println(3<<2);      //输出3左移两位的结果  3*2*2=12
    }
}

3:  00000000 00000000 00000000 00000011

12:   00000000  00000000 00000000 00001100

>>

public class Testx {
    public static void main(String[] args) {
        System.out.println(6>>2);      //输出6右移两位的结果  6/2/2=1
    }
}

6:    00000000 00000000 00000000 00000110

1:00000000 00000000 00000000 00000001

public class Testx {
    public static void main(String[] args) {
        System.out.println(-6>>2);      //输出-6右移两位的结果
    }
}

-6:   11111111 11111111 11111111 11111010

-2:11111111 11111111 11111111 11111110

>>>

ublic class Testx {
    public static void main(String[] args) {
        System.out.println(-6>>>2);      //输出-6无符号右移两位的结果  
    }

-6:                     11111111 11111111 11111111 11111010

1073741822:00111111 11111111 11111111 11111110

大概顺序:算术运算符>移位运算符>关系运算符>逻辑运算符>赋值运算符

圆括号会提升其内部操作数的优先级。为了得到所期望的结果,这通常是必需的。圆括号(不管是否冗余)不会降低程序的性能。

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值