运算符分类
运算符指明对操作数的运算方式.组成表达式的java操作符有很多种…运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,他们分别对应1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符,关系运算符,逻辑运算符,位运算符和其他运算符
操作数数目来分
单目运算符
~(按位取反)、!(取非)、-(负号运算符)、++(自增)、–(自减)
列如
~5 //按位取反-6
boolean flg=true;
!flg //取非false
-5 //负号运算符-5
int a=5;
//这里一定要注意自增++的位置很重要,++在前是先计算后应用,++在后是先应用后计算
a++; //5
++a; //6
//这里一定要注意自减--的位置很重要,--在前是先计算后应用,--在后是先应用后计算
a--; //5
--a; //4
双目运算符
+、-、*、/、%(取余)
6+5; //+运算符11
6-5; //-运算符1
6*5; //*运算符30
6/5; ///运算符1 这里注意两个整型相除是会舍去小数点后面的数值
7.25/5; //1.45 只有其中一个位浮点型时小数点后面的数值才会显示
7%5; //%运算符2
12%5; //2
三目运算符
条件?a:b; 当?前面的条件成立为真时 执行a部分代码,反之执行b部分的代码
int a=6;
int b=5;
a<b?"成立":"不成立" //不成立
其功能来分
算数运算符
+,-,*,/,%,++,–
赋值运算符
=
int a;
a=10;
关系运算符
>,<,<=,>=,==,!=, instanceof(是否继承或者实现这个类或者接口)
a>b;
b<c;
a>=b;
a<=c;
a==b;
a!=c;
List list=new ArrayList();
list instanceof ArrayList; //这里一定要注意,instanceof比较了类型必须是引用类型
逻辑运算符
&&,||,!
a<b&&a<c
a<b||a<c
位运算符
&,|,^,~,>>,<<,>>>
/*
&运算符想要知道怎么算
首先第一步就要把数字转换成二进制
9=1001
5=101
相同位都为1则取1,否则取0;
|运算符也是要先转换成二进制
相同位有一个为1则取1,都为0才取0;
^运算符也是要先转换成二进制
不相同则取1,相同则取0;
*/
9&5; //1
5&9; //1
9|5; //13
5|9; //13
9^5; //12
5^9; //12
9<<2; //36
/*
9转为二进制是10001 左移2为(就是多加两位,也就是两个0,也可理解左移动一位就是剩余2)
为1000100 转换成十进制就是36
*/
9>>2; //2
9>>>2; //2
/*
>>运算符 9转为二进制是10001 右移2为(就是去掉后面两位)
为10 转换成十进制就是2
>>>运算符类似于>>运算符
*/
条件运算符
?,:
扩展赋值运算符:
+=,-=,*=,/=
符号优先级高到低排列:
[] () ++ – ! ~ instanceof * / % + - << >> >>> <> <= > | == != & ^ && || ? : = op=