运算符
算术运算符
- 基本四则运算符 + - * / %
- int / int 结果还是int,要想结果是小数,需要使用double计算
0不能作为除数
%表示取余,int,double都可以
System.out.println(11.5 % 2.0);
// 运行结果
1.5
- 增量赋值运算符 += -= *= /= %=
- 自增/自减运算符 ++ –
- 如果不取自增运算的表达式的返回值,则前置自增和后置自增没有区别
如果取表达式的返回值,则前置自增的返回值是自增之后的值,后置自增的返回值是自增之前的值
关系运算符
- 关系运算符有6个 == != < > <= >=
- 关系运算符的表达式返回值都是boolean类型
逻辑运算符(重点)
-
逻辑运算符有3个 && || !
-
逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是boolean
-
逻辑与 &&
两个操作数都为true,结果为true,否则为false -
逻辑或 ||
两个操作数都为false,结果为false,否则为true -
逻辑非 !
操作数为true,结果为false,反之为true,单目运算符,只有一个操作数 -
短路求值
1.对于&&,如果左侧表达式为false,则表达式的整体的值一定是false,无需计算右侧表达式
2.对于||,如果左侧表达式为true,则表达式的整体的值一定是true,无需计算右侧表达式
位运算符
Java中对数据的操作的最小单位不是字节,而是二进制位
-
位运算符有4个 & | ~ ^
位操作表示按二进制位运算 -
按位与 &:如果两个二进制位都是1,结果为1,反之为0
-
按位或 |:如果两个二进制位都是0,结果为0,反之为1
-
按位取反 ~:0变1,1变0
-
按位异或 ^:两个数字相同为0,不同为1
注意:当&和|的操作数为整数(int,byte,short,long)的时候表示按位运算,当操作数为boolean的时候表示逻辑运算
移位运算符
- 左移 <<:最左侧位不要了,最右侧补0,左移一位,相当于原数字*2
- 右移 >>:最右侧位不要了,最左侧位补符号位(正数补0.负数补1),右移一位,相当于*2
- 无符号右移 >>>:最右侧位不要了,最左侧补0
- 由于计算机计算移位效率高于计算乘除,当某个代码正好乘除2的N次方的时候,可以用移位运算符代替,当移动负数位或者移位位数过大都没有意义
条件运算符
- 条件运算符只有一个 表达式1 ? 表达式2 : 表达式3
当表达式1的值为true时,整个表达式的值为表达式2的值,当表达式1的值为false时,整个表达式的值为表达式3的值
java中唯一一个三目运算符,是条件判断语句的简化写法