[java基础]之 运算符

运算符概念#

针对常量和变量之间进行运算的符号

运算符的分类#

算术运算符 赋值运算符 关系运算符(比较运算符) 逻辑运算符 位运算符 三目运算符

算数运算符#

【java基础】之 运算符

+ 在 java 当中含义很多

1. 作为正数 +5 单目运算符 a++ 双目运算符 a+b 三目运算符 a?b:c

2. 加法运算

3. 字符串连接符

技巧:#

1. 如何计算中防止精度丢失

2. 如何分离中一个数的每一位

eg: 1234

分离个位: 1234 / 1 % 10 意思为:将 1234 除 1 然后对 10 取余。

分离十位: 1234 / 10 % 10

分离百位: 1234 / 100 % 10

分离千位: 1234 / 1000 % 10

自增自减运算符#

++ – 属于单目运算符

++ 表示自增 1

–表示自减 1

分为

单独使用

表示自增或者自减,没有任何区别

参与运算

如果 ++ 放在操作数的左边,就表示先自增再参与运算

如果 ++ 放在操作数的右边,就表示参与运算,再自增或者自减 1

赋值运算符#

【java基础】之 运算符

=:这个等于号再 Java 中表示赋值的意思,真正数学意义上的相等是 == 在 JavaScript 当中还有 === 表示类型和数值都相等

扩展赋值运算符#

+=,-=,*=,/=,%= 注意:扩展运算符包含强制类型转换

eg:a+=10; a=(a 的类型)a+10;

比较运算符#

【java基础】之 运算符

关系运算符的结果是 boolean 类型

注意点:#

1、 > 、 <、>= 、 <= 只支持左右两边操作数是数值类型

2、 == 、 != 两边的操作数既可以是数值类型,也可以是引用类型

逻辑运算符#

作用:链接 boolean 类型的表达式,逻辑运算符两边必须是 boolean 类型的表达式

boolean 类型的表达式 1 逻辑运算符 boolean 类型的表达式 2 逻辑运算符 boolean 类型的表达式 3 逻辑运算符 boolean 类型的表达式 n

& 按位与 x&y x 和 y 均为 true,取值为 true;否则取值 false
| 按位或 x y
^ 异或 x^y x 和 y 的值相异,取值为 true;否则取值 false
&& 短路与 x&&y x 和 y 均为 true,取值为 true;否则取值 false
短路或
!x x 为 false,取值为 true;否则取值 false
& 和 && 的区别:#

1.& 表示按位与,无论什么情况都会同时计算运算符两边的表达式

2.&& 表示短路与,如果前面的表达式为 false,那么无论后面结果如何,都不会去计算后面表达式的值

3.&& 开发中使用,& 基本不用

4.& 常用于位运算,位运算的效率比普通运算要高很多

! : 取反#

当!的个数是奇数个的时候,结果相反

当!的个数是偶数个的时候,结果不变

条件运算符#

| ?: |

格式:x?Y:Z

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

执行流程:

首选计算 X 表达式的结果,如果 X 的结果为 true,那么整个表达式的结果就是 Y 的值

如果 X 的结果为 false,那么整个表达式的结果就是 Z 的值

位运算符#

在计算机内部,数据是以二进制编码存储的,Java 变成语言允许我们对这些二进制编码进行位运算。

位操作符 使用方法 功能描述
& x&y x 和 y 按位进行与运算
| x y
^ x^y x 和 y 按位进行异或运算
~ ~y x 按位进行非运算
>> x>>y 将 x 的二进制编码右移 y 位(前面填充的是符号位)
<< x<<y 将 x 的二进制编码左移 y 位
>>> x>>>y 将 x 的二进制编码右移 y 位(前面的位填 0)

举例:12 的编码是 1100 ,7 的编码是 0111,那么:

12&7 结果的二进制编码为 0100, 对应的值为 4

12|7 结果的二进制编码为 1111, 对应的值为 15

12^7 结果的二进制编码为 1011, 对应的值为 11

因为

1100 1100 1100

&0111 |0111 ^0111

0100 1111 1011

如果对 12 进行移位操作:

12>>2; 结果的二进制吗为 11,对应的值为 3

7<<2; 结果的二进制码为 11100,对应的值为 28

本作品采用《CC 协议》,转载必须注明作者和本文链接