java中的运算符

java中的运算符

1、算术运算符
基本四则运算符 + - * / %
 运算规则比较简单,但需要注意除法。
注意:
 1、int/int结果是int,但是需要用double来计算;
 2、0不能作为除数;
 3、%表示取余,不仅可以对int取模,还可以对double取模;

增量赋值运算符 += -= *= /= %=

自增/自减运算符 ++ -
注意:
 1、如果不取自增运算的表达式的返回值, 则前置自增和后置自增没有区别;
 2、 如果取表达式的返回值, 则前置自增的返回值是自增之后的值,后置自增的返回值是自增之前的值;

2、关系运算符
关系运算符主要有六个:
== != < > <= >=
注意:
 关系运算符的表达式返回值都是布尔(boolean)类型;

3、逻辑运算符
逻辑运算符主要有三个:
&& || !
注意:
 逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean ;

逻辑与&&

规则:两个操作数都为 true, 结果为 true, 否则结果为 false。

逻辑或||

规则:两个操作数都为 false, 结果为 false, 否则结果为 true。

逻辑非!

规则:操作数为true,结果为false;操作数为false,结果为true(逻辑非!为单目运算符,故只有一个操作数)。

短路求值
&&和||遵循短路求值的规则。
结论:
 1、对于 && , 如果左侧表达式值为 false, 则表达式的整体的值一定是 false, 无需计算右侧表达式;
 2、对于 ||, 如果左侧表达式值为 true, 则表达式的整体的值一定是 true, 无需计算右侧表达式;
 当程序出现异常,会立马停止运行,不会继续执行;

& 和 | (不推荐使用)
 & 和 | 如果操作数为 boolean 的时候, 也表示逻辑运算. 但是和 && 以及 || 相比, 它们不支持短路求值。

4、位运算符

Java 中对数据的操作的小单位不是字节, 而是二进制位。
位运算符主要有四个:
& | ~ ^

位操作表示 按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位 的每一位依次进行计算.

按位与&
规则:如果两个二进制位都是 1, 则结果为 1, 否则结果为 0。
 进行按位运算会先将十进制转换为二进制再进行运算。

按位或|
规则: 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1。
注意:
 当 & 和 | 的操作数为整数(int, short, long, byte) 的时候, 表示按位运算, 当操作数为 boolean 的时候, 表示逻 辑运算。

按位取反 ~
规则:如果该位为 0 则转为 1, 如果该位为 1 则转为 0。

注意:
  1、 0x 前缀的数字为 十六进制 数字. 十六进制可以看成是二进制的简化表示方式. 一个十六进制数字对应 4 个二 进制位;
 2、 0xf 表示 10 进制的 15, 也就是二进制的 1111 ;
 3、 printf 能够格式化输出内容, %x 表示按照十六进制输出;
  4、 \n 表示换行符。

按位异或^
规则:如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1。

5、移位运算
移位运算符有三个:
<< >> >>>

左移<<
规则:最左侧溢出,最右侧补0。

右移>>
规则:最右侧溢出,最左侧补符号位(正数补0,负数补1)。

无符号右移>>>
规则:最右侧溢出,最左侧补0。

注意:
 1、左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方;
  2、 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方;
 3、由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替;
 4、 移动负数位或者移位位数过大都没有意义。

6、条件运算符
条件运算符只有一个:
表达式1 ? 表达式2 : 表达式3

 当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值; 当 表达式1 的值为 false 时, 整个表达式的值为 表 达式3 的值。
条件运算符是java中唯一一个三目运算符,是条件判断语句的简体写法。

7、运算符优先级
运算符之间是有优先级的, 具体的规则我们不必记忆,在可能存在歧义的代码中加上括号即可。

8、小结
1、% 操作再 Java 中也能针对 double 来计算;
2、需要区分清楚 前置自增 和 后置自增之间的区别;
3、由于 Java 是强类型语言, 因此对于类型检查较严格, 因此像 && 之类的运算操作数必须是 boolean;
4、要区分清楚 & 和 | 什么时候是表示按位运算, 什么时候表示逻辑运算;
整体来看, Java 的运算符的基本规则和 C 语言基本一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值