JavaSE--运算符

发布时间 2023-08-09 09:09:09作者: 洛小依ovo

一、运算符

运算符:用于指明对于操作数的运算方式

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、运算符优先级

括号 > 单目运算符 > */% > +- > 位运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符