java基础-2-运算符-学习笔记

运算符

java提供丰富运算符,大概分为算术数运算符关系运算符位运算符逻辑运算符赋值运算符

算术运算符

该运算符就在数学上的应用一样

操作符 描述 例子
+ 加法 A+B
- 减法 A-B
* 乘法 A*B
/ 除法,取商 A/B
% 取余数 A%2
++ 自增 A++,++A
-- 自减 C--,--C

注意: A++,++A的区别

例子:

int a =3;
int b = a++; //实际打印b=3
//第一次打印a=4
int c = ++a; //实际打印c=4
//第二次打印a=5

解析:
运算拆分

int a =3
int b =a++;
a = a+1 =4
b = 4;
a = 4;

++a,--a,先进行自增(自减)运算,在进行表达式运算

a++,a--,先进行表达式运算,再进行自增(自减)运算

关系运算符

操作符 描述 例子
== 检查两个值是否相等,是返回true,反之返回false A==B
!= 检查两个值,不相等则返回true,反之返回false A!= B
> 检查左边值是否大于右边值,是的返回为true,反之返回false A>B
< 检查左边值是否小于右边值,是的话返回为true,反之返回false A
>= 检查左边值是否大于等于右边值,是返回为true,反之返回false A>=B
<= 检查左边值是否小于等于右边值,是返回为true,反之返回false A<=B

位运算符

java定义的位运算符,适用于byte,short,char,int,long等类型
位运算符在所有的位上,并且按位运算
举例:A=60,B=13,以下用二进制表示

A = 0 0 1 1 1 1 0 0 
B = 0 0 0 0 1 1 0 1 

A&B = 0 0 0 0 1 1 0 0 
A|B = 0 0 1 1 1 1 0 1 
A^B = 0 0 1 1 0 0 0 1 
~A  = 1 1 0 0 0 0 1 1 
A<<2= 1 1 1 1 0 0 0 0 
A>>2=         1 1 1 1 
A>>>2=0 0 0 0 1 1 1 1 
操作符 描述 例子
& 相对应位均为1的话,则为1,反之为0 A&B
| 相对应位均为0的话,则为0,反之为1 A|B
^ 相对应位均相等的话,则为0,反之为1 A^B
~ 取反运算符,1变0,0变1 ~a
<< 2 左边的值的位向左移动2位 A<<2
>>2 左边的值的位向右移动2位 A>>2
>>>2 左边的值的位向右移动2位,移动均以0补充 A>>>2

逻辑运算符

操作符 描述
&& 与运算符,两者为真,才返回true,反之false
| | 或运算符,两者其一为真,即返回true,反之为false
! 非运算符,将操作值的逻辑状态反转,true变false,false变true

赋值运算符

操作符 描述 例子
= 将右边值赋给左边值 C=A+B
+= 将左值加上右值重新赋给左边值 C+=A C=C+A
-= 将左值减去右值重新赋给左边值 C-=A C=C-A
*= 将左值乘于右值重新赋给左边值 C*=A C=C*A
/= 将左值除于右值得到商重新赋给左边值 C/=A C=C/A
%= 将左值除于右值得到余数重新赋给左边值 C%=A C=C%A
<<= 将左值的位向左移右操作值位数重新赋给左边值 C<<=2 C=C<<2
>>= 将左值的位向右移右操作值位数重新赋给左边值 C>>=2 C=C>>2
&= 按照按位与赋值 C&=2 C=C&2
^= 按照按位异或赋值 C^=2 C=C^2
| = 按照按位或赋值 C | =2 C=C | 2

三目运算符

该运算符有三个操作数,并需要判断布尔型的值,来确定讲那个数赋值给变量
真返回?后面的值来赋值,反之拿:后面值来赋值

int a = 0;
int b = 3;

//这处a=20,由于3小于5,取:后的值赋值给a
int a = (b>5)?10:20 

//这处a=10,由于3大于0,取?后的值赋值给a
int a = (b>0)?10:20

instanceof运算符

该运算符用于操作对象实例,检查该对象是否指定对象(类或者接口),满足则返回true,反之为false
如:

String name ="Stuart";

//此处这里是返回 true
boolean result = name instanceof String 

运算符优先级

优先级 类型 操作符 关联性
1 符号 () [] . 从左到右
2 一元 +(正) -(负) ! ~ 从右到左
3 乘除 * / % 从左到右
4 加减性 + - 从左到右
5 移位 >> >>> << 从左到右
6 关系 > >= < <= instanceof 从左到右
7 相等 == != 从左到右
8 按位与 & 从左到右
9 按位异或 ^ 从左到右
10 按位或 | 从左到右
11 逻辑与 && 从左到右
12 逻辑或 || 从左到右
13 三目运算 ?: 从右到左
14 赋值 = += -= ^= %= /= ~= >>= <<= >>>= 从右到左
  • 优先级按照从高到低的顺序书写,也就是优先级为1的优先级最高,优先级14的优先级最低

  • 结合性是指运算符结合的顺序,通常都是从左到右。从右向左的运算符最典型的就是负号,例如3+-4,则意义为3加-4,符号首先和运算符右侧的内容结合。

  • 注意区分正负号和加减号,以及按位与和逻辑与的区别

你可能感兴趣的:(java基础-2-运算符-学习笔记)