含义:对常量和变量进行操作的一些符号。
分类: 算术运算符,赋值运算符,比较(关系或条件)运算符,逻辑运算符,位运算符,三目(元)运算符
------算术运算符(+,-,*,/,%,++,-- )
+运算符:在java中有三种作用,代表正号,做加法运算,字符串的连接符
/运算符:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
%运算符当左边的绝对值小于右边绝对值时,结果是左边 (1%2的结果就是1)
当左边的绝对值等于右边或是右边的倍数时,结果是0 (1%1=0)当左边的绝对值大于右边绝对值时,结果是余数(5%2=1)
%运算符结果的符号只和左边有关系,与右边无关任何一个正整数%2结果不是0就是1可以用来当作切换条件
注意:/获取的是除法操作的商,%获取的是除法操作的余数
++:自加。对原有的数据进行+1
--:自减。对原有的数据进行-1
++和--的使用:
单独使用:放在操作数的前面和后面效果一样。(比如a++和++a都表示a=a+1)参与运算使用:
放在操作数的前面,先自增或者自减,然后再参与运算。(int a=3,int b;b=++a,打印得到结果是:a=4,b=4)
放在操作数的后面,先参与运算,再自增或者自减。(int a=3,int b;b=a++,打印得到结果是:a=4,b=3)
------赋值 运算符(=,+=,-=,*=,/=,%= )
分类:基本运算符和扩展的运算符
基本的赋值运算符:=
把=右边的数据赋值给左边。(int a = 10就表示将10赋值给a)
扩展的赋值运算符:+=,-=,*=,/=,%=
+= 把左边和右边做加法,然后赋值给左边。(a+=4表示a=a+4)
-= 把左边和右边做减法,然后赋值给左边。(a-=4表示a=a-4)
*= 把左边和右边做乘法,然后赋值给左边。(a*=4表示a=a*4)
/= 把左边和右边做除法,然后赋值给左边。(a/=4表示a=a/4)
%= 把左边和右边做取余,然后赋值给左边。(a%=4表示a=a%4)
------关系运算符(==,!=,>,>=,<,<= )
关系运算符也叫比较运算符,条件运算符
特点:无论你的操作是简单还是复杂,结果是boolean类型。注意: "=="不能写成"=","=="是关系运算符,用来做比较的,而"="是赋值运算符,是用来赋值的
------逻辑运算符(&,|,^,!,&&,||)
逻辑运算符一般用于连接boolean类型的表达式或者值。
表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
算术表达式:a + b
比较表达式:a == b(条件表达式)
&逻辑与:有false则false。
|逻辑或:有true则true。
^逻辑异或:相同为false,不同为true。
!逻辑非:非false则true,非true则false。(偶数个不改变本身。)
&&和&的区别?
最终结果一样。
&&(短路与)具有短路效果。左边是false,右边不执行。但是&(逻辑与)是无论左边是false还是true,右边都会执行
||和|的区别?
最终结果一样。
||(短路或)具有短路效果。左边是true,右边不执行。但是&(逻辑或)是无论左边是false还是true,右边都会执行
------位运算符(&,|,^,~ ,>>,>>>,<<)
位与&:有0则0
位或|:有1则1
位异或^:相同则0,不同则1 (特点:一个数据对另一个数据位异或两次,该数本身不变。(比如:5^10^10=5))
位非~:按位取反
左移 <<:左边最高位丢弃,右边补齐0(其实就是乘以2的几次方 5*8就可以表示为 5 << 3,其实就是5*2^3)
右移 >>:最高位是0,左边补齐0;最高为是1,左边补齐1
无符号右移 >>>:无论最高位是0还是1,左边补齐
------三元运算符
格式:(关系表达式) ? 表达式1 : 表达式2;
三元运算符的执行流程 :先计算关系表达式 , 如果结果为true,该结果就是表达式一,否则为表达式二