[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中表示赋值的意思,真正数学意义上的相等是 == 在JavaScript当中还有=== 表示类型和数值都相等
扩展赋值运算符
+=,-=,*=,/=,%= 注意:扩展运算符包含强制类型转换
eg:a+=10; a=(a的类型)a+10;
比较运算符
关系运算符的结果是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 协议》,转载必须注明作者和本文链接