笔记:Java 运算符


算数运算符

+、-、*、/ 分别表示加、减、乘、除运算;% 表示求余(取模)。

两个整数相除时,采用整数除法,商为整数。

10 / 3; // 值为 3

两个整数求余。

10 % 3; // 值为 1

当整数被0 除时,则直接抛异常。

10 / 0;
Exception in thread "main" java.lang.ArithmeticException: / by zero
at variable.main(variable.java:5)

非整数相除时,采用浮点除法。

10 / 2.5; // 值为 4.0
10 / 3.5; // 值为 2.857142857142857

当浮点数被 0 除时,结果为无穷大。

(6.6 / 0) == Double.POSITIVE_INFINITY; // 正无穷大,结果为 true
(-6.6 / 0) == Double.NEGATIVE_INFINITY; // 负无穷大,结果为 true

自增与自减运算符

n++ 将变量 n 的值加 1,n– 将变量 n 的值减 1。

++n 和 –n 实现同样的效果,不同的是 ++n 和 –n 都是先操作值,再返回结果;n++ 和 n– 是先返回结果,再操作值。

int n = 1;
int m = ++n; // n为2,m为2
int o = n++; // n为3,o为2

不建议在表达式中使用此运算符,可读性差。

关系运算符

运算符说明
==相等
!=不等
<小于
<=小于等于
>大于
>=大于等于
关系运算符一览表

关系运算符的结果为 true 或 false。

3 == 7; // 值为 false

逻辑运算符

运算符说明
&&逻辑与
||逻辑或
!逻辑非
逻辑运算符一览表

用法技巧

有表达式 x != 0 && y / x,左侧表达式 x != 0 可以作为右侧表达式的条件,其为真时,才会对右侧表达式求值。

exp1 || exp2,当 exp1 为真时整个语句为真。

位运算符

运算符说明
&按位与
|按位或
^按位异或
~按位取反
<<按位左移
>>按位右移
>>>按位右移,高位用0填充(无符号右移)
位运算符一览表

例子

byte b1 = 0b1010;
byte b2 = 0b1111;
byte b3 = 0b1110;
byte b4 = 0b1001;

b1 & b2; // 结果1010
b1 | b3; // 结果111
b1 ^ b4; // 结果0011
~b1;     // 结果11110101 @TODO

@TODO 无符号右移 待补充

其它

简化赋值和运算符,比如

x= x + 4 可以简化为 x +=4

当运算结果和左侧操作数类型不同时,会自动发生强制类型转换,比如

int x3 = 10;
x3 += 2.5; // 结果为 12

(全文完)


手机扫码阅读

本文为作者原创(特别说明的部分除外),版权归作者本人所有。请勿转载本文;欢迎引用并链接到原文。

发表评论

电子邮件地址不会被公开。 必填项已用*标注