一、运算符
运算符:用于指明对于操作数的运算方式
1、运算符分类
1)按照操作数的数目分
单目操作符、双目操作符、三目操作符
2)按照运算符的功能来分
算术运算符、赋值运算符、关系运算符、逻辑运算符2、运算符详解
1)算数运算符
+ 加法
- 减法
* 乘法
/ 除法
% 取余数、取模
++ 自增
-- 自减
x++:就是将x变量空间的内容先取出,常量区取出1进行计算,再次存回x空间
当在x想要做值的交换的时候会先产生一个临时的副本空间(备份一份)
++在变量前面的时候先自增后备份,++在变量后面的时候先备份后自增
会将副本空间内的值赋给别人
2)赋值运算符
= 赋值符号,将等号右边的内容存入=左边的变量空间内
+= -= *= /= %=
+=:加上一个数然后赋值给自身
3)关系运算符
> >= < <= != ==
1.区分=和==
=是赋值符号,将=后面的结果存入=左边的变量的空间内
==比较符号,比较==前面和==后面的元素是否一致
2.比较运算符最终的结果是什么
用Boolean类型表示结果,true false
用作一个条件的判定
4)逻辑运算符
逻辑运算符前后连接的两个结果为Boolean值
1、&逻辑与
两个条件同时满足,最终才为true,可以理解为中文“和”“并且”意思
2、|逻辑或
可以理解为中文的“或者”,前后两个条件只要有一个满足就为true
3、^逻辑异或
前后的两个表达式结果不一致,结果就为true,(异或不同为1)
4、!逻辑非
将原来的结果取反
5、&&短路与
当前面是true时,向后看,当前面为false时,直接短路
当前面的值结果为false的时候会发生短路,
如果发生了短路情况,性能会比&稍微好点,
从执行结果来看,最终结果来看没有任何区别,也就是只有前面的结果为false的时候性能才会提高
6、||短路或
当前面的结果为false的时候,向后看,当前面为true时,直接短路
5)位运算
1、&按位与
2、|按位或
3、^按位异或
例:3&5=?
1)将3和5转化为二进制表示形式
2)竖着按照对应位置进行&|^计算(1当作true,0当作false)
3)将计算后的二进制结果转化为十进制
4、~按位取反
就是取反码
5、<<按位左位移
就是以二进制形式向左位移,然后最后面填0,然后算出十进制
相当于这个数乘以2的位移次幂
6、>>按位右位移
以二进制向右位移,然后前面填0,相当于除以2的位移次幂
7、>>>按位右位移(无符号)
>>保留符号位置1 填1
>>>不保留符号位置 不管是什么都填0
6)三目运算符
数据类型 变量名称 = 条件判断 ?表达式a :表达式b;
如果判断条件成立为true,那么表达式a的值赋值给左侧变量
如果判断条件不成立为false,那么表达式的值赋值给左侧的变量
7)其他运算符
instanceof
new
3、运算符优先级
括号 > 单目运算符 > */% > +- > 位运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符
标签:false,--,短路,运算符,按位,JavaSE,true,赋值 From: https://www.cnblogs.com/hyy-0/p/17606828.html