Java运算符重难点剖析

本文全面解析Java中的各类运算符,包括算数、关系、赋值、逻辑、位运算及三目运算符。深入探讨算数运算符的特殊场景,如除法运算中分母为0的情况,以及自增自减运算符的使用规则。详细解释了逻辑运算符的短路特性,位运算符的补码操作原理,以及三目运算符在条件判断中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、运算符基本介绍

算数运算符+ , - , * , / , % , ++ , --
关系运算符> , >= , < , <= , == , !=
赋值运算符+= , -=  , /= , *= , %=
逻辑运算符& , | , ! , || , && , ^
位运算符& , | , ~ , ^ , >> , >>> , <<

三目运算符

表达式?表达式1 : 表达式2

二、重难点介绍

(1)算数运算符

【1】两个int型做除法运算,分母为0时,编译不会报错,但运行时会报异常。(ByZero)

两个浮点型做除法运算,分母为0.0时,编译不会报错,运行会出现infinity(-infinity)表示无穷

【2】关于自增运算符

++在变量右边,先使用变量当前的值参与运算,在让变量值加1;a++;(先运算,在自增

++在变量左边,先让变量值加1,在使用变量值参与运算;++a;(先自增,在运算

自减也是同理

(2)关系运算符

(3)赋值运算符

+=:将左侧变量的值和右侧变量的值进行相加,然后再将得到的数,赋值给左侧。a+=b  >>>> a=a+b

注意:+=之类的赋值运算符,会自动进行数据类型的强制转换。此外 自增与自减也是。

(4)逻辑运算符

只针对boolean类型的值做运算,并且运行结果也必然为boolean类型。

^ : 异或,左右两边不相同,则结果为true。左右两边相同,则结果为false

&& 与 &的区别:当&&运算符的左边为false时,则符号右边不在执行。而&左边无论为true还是false,都会执行右边的内容。

|| 与 | 的区别:当||运算符的左边为true时,则符号右边不在执行。而|左边无论为true还是false,都会执行右边的内容。

(5)位运算符

用来针对二进制进行运算,此外,计算机操作的是数的补码

正数:原码,反码,补码都是一样的。

负数:

反码原码符号位不变,其他位取反。

补码反码的最后一个二进制位+1;

&:根据每个二进制进行运算

如果同一个二进制位都为1,结果是1

如果同一个二进制位有一个为0,结果是0

|:根据每个二进制进行运算

如果同一个二进制位都为0,结果是0

如果同一个二进制位有一个为1,结果是1

^:相同为0,不同为1。一个数,对同一个数“异或”两次,仍然是它本身。

~:取反(符号位也变)

<<:左移。将二进制数整体向左移动相应的位数,左侧多出来的位数直接舍掉,后面空出来的位数补0。

>>:右移。如果是正数,将二进制数整体向右移动相应的位数,左侧不足的位数补0。

如果是负数,先将原码变成补码,将补码整体向右移动相应的位数,左侧不足的位数补1,之后进行补码-1(因为之前由反码到补码是最后二进制位+1的),在进行反码。最后,得出结果。

>>>:无符号右移。不论正负,高位均补0。

(6)三目运算符

表达式 表达式1 : 表达式2

补充:比较三个数的大小

int max = a > b ? (a>c ? a : c) : (a>b ? a : b)

三、运算符优先级

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值