运算符
概述:就是对常量和变量进行操作的符号。
分类:算术运算符,复制运算符,比较运算符,逻辑运算符。位运算符,三目运算符
1.算术运算符:
+,-,*,/,%,++,--
注意事项:
A:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型。
B:/获取的是除法操作的商,%获取的是除法操作的余数
++,-- 运算符的使用:
单独使用:放在操作数的前面和后面效果一样。(这种用法是比较常见的)
参与运算使用:
放在操作数的前面,先自增或者自减,然后再参与运算。
放在操作数的后面,先参与运算,然后再自增或者自减。
作用:就是对变量进行自增1或者自减1。
+ 的用法:
A:加法 3+4;
B:正号 +4;
C:字符串连接符 'hello'+'a'+1
2.赋值运算符
基本的赋值运算符:=
把=右边的数据赋值给左边。
扩展的赋值运算符:+=,-=,*=,/=,%=
+=把左边和右边做加法,然后赋值给左边。
面试题1:
short s = 1; s = s+1;
short s = 1; s+=1;
上面两个代码有没有问题,如果有哪里有问题
为什么第二个没有问题呢?
扩展的赋值运算符其实隐含了一个强制类型转换。
s += 1;
不是等价于 s = s+1;
而是等价于 s = (s的数据类型)(s+1);
3.比较运算符的基本用法
比较运算符:
== , != ,>= , < ,<=
特点:
无论你的操作是简单还是复杂,结果是boolean类型。
注意事项:
"=="不能写成"=" “=”是赋值运算符
4.逻辑运算符的基本用法
逻辑运算符:
& , | ,^ , !
&& ,||
特点:
逻辑运算符用于连接布尔型的表达式或者值。
表达式:就是用运算符把变量或者常量连接起来的符合Java语法的式子。
算术表达式:a + b
比较表达式:a==b
结论:
&逻辑与:有false则false。
|逻辑或:有true则true。
^逻辑异或:相同的为false,不同为true
举例:情侣关系。男男,男女,女男,女女
!逻辑非:非false则true,非true则false,
特点:偶数个不改变本身。
&&与&的区别?同理||与|的区别?
A:最终结果一样。
B:&&具有短路效果。左边是false,右边不执行。
开发中常用的逻辑运算符:
&& , || ,^
5.位运算符的基本用法
位运算符:
& , | , ^ , ~
<< , >> , >>>
&位与运算:有0则0.
|位或运算:有1则1.
^位异或运算:有1则1.
~按位取反运算符:0变1,1变0.
^的特点:一个数据对另一个数据位异或两次,概述本身不变。
面试题:
请自己实现两个整数变量的交换:
方式1:使用第三方变量(开发中用的)
方式2:用位异或实现(面试用)
方式3:用变量相加的做法:
a=a+b;
b=a-b;
a=a-b;
方式4:b=(a+b)-(a=b);
注意:
要做位运算,首先要把数据转换成二进制。
<<:左移 左边最高位丢弃,右边补齐0
>>:右移 最高位是0,左边补齐0;最高位是1,左边补齐1
>>>:无符号移动 无论最高位是0还是1,左边补齐0
6.三目运算符
单目运算符:~3
双目运算符:3+4
三目运算符:
格式:比较表达式 ?表达式1:表达式2;
比较表达式:结果是一个boolean类型。
执行流程:
根据比较表达式的计算返回一个true或者false。
如果是true,就把表达式1作为结果。
如果是false,就把表达式2作为结果。
2019/07/28 19:22