〇、运算符
运算符 | ||||
---|---|---|---|---|
算术运算符 | 一元运算符 | ++,- - | ||
二元运算符 | +,-,*,/,% | |||
赋值运算符 | = | |||
扩展运算符 | +=,-=,*=,/=,%= | |||
关系运算符 | >,<,>=,<=,==,!=,instanceof | |||
逻辑运算符 | &&,||,!,^ | |||
位运算符 | &,|,^,~,>>,<<,>>> | |||
条件运算符 | x?y:z | |||
字符串连接符 | + |
一、算术运算符
1.一元运算
符号 | ++,-- |
---|
①整数运算
两者有一个 long,结果为 long 没有long 时,结果为 int。
即使操作数全为 short,byte,结果也是 int
②浮点运算
有一个为 double,则结果为 double
两者都是 float,结果为 float。
③取模运算
其操作数可以为浮点数,一般使用整数
结果是“余数” “余数”符号和左边操作数相同,如: 7%3=1,-7%3=-1,7%-3=1
2.二元运算
符号 | +、-、*、/、% |
---|
int a = 2;
a++;//相当于:a = a+1;
a--;//相当于:a = a-1;
二、赋值运算符
将=右边赋值给=左边(
不再过多描述
)
三、扩展运算符
符号 | +=、-=、*=、/=、%= |
---|
a += b; //含义:a = a+b
a -= b; //含义:a = a-b
a *= b; //含义:a = a*b
a /= b; //含义:a = a/b
a %= b; //含义:a = a%b
a*= b+1; //相当于a=a*(b+1)
四、关系运算符
符号 | >、<、>=、<=、==、!=、instanceof |
int a= 3;
int b = 4;
boolean c = a>b;
System.out.println(c);
char d= 'h';
//char值位于0~65536之间,可以通过(int) 强制转型成数字
System.out.println((int)d);
boolean e = d>100;
System.out.println(e);
输出:
false
104
true
五、逻辑运算符
运算符 | 注 | |
---|---|---|
与 | & | 只要有一个为 false,则 false |
短路与 | && | |
或 | | | 只要有一个为 true,则 true |
短路或 | || | |
非 | ! | 取反 |
异或 | ^ | 相同为 false,不同为 true |
boolean a =true;
boolean b = false;
System.out.println(a&b); //与: 有一个false,结果: false
System.out.println(a|b); //或: 有一个true,结果: true
System.out.println(!b); //取反
System.out.println(a^b); //异或:相同false,不同true
输出:
false
true
true
true
示例:
//短路与、短路或
//int c = 3/0;//会报不能除以0的异常
boolean c = 1>2 && (4<3/0);
System.out.println(c);
输出:
false
六、位运算符
运算符 | 描述 |
---|---|
~ | 取反 |
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
<< | 左移运算符,左移 1 位相当于乘 2 |
>> | 右移运算符,右移1位相当于除2 取商 |
int a = 7;
int b = 8;
System.out.println(a&b); //结果: 0
System.out.println(a|b); //结果: 15
System.out.println(a^b); //结果: 15
System.out.println(~b); //结果: -9
//移位
//乘以2,除以2,使用移位操作,最快! ! !
int c = 2<<3; //相当于: 2*3*3
System.out.println(c);//输出:18
System.out.println(40>>2); //相当于: 40/2/2
七、条件运算符
符号 | x>y?a:b |
示例:
int score =90;
String a=score<60?"不及格":"及格”;
/**
* 表示:
* if(score<60){
* a=“不及格”;
* }else{
* a=“及格";
* }
*/
System.out.println(a);
int x = -100;
int flag=x>0?1 : (x == 0?0 :-1);
System.out.println(flag);//结果: -1
八、字符串连接符
符号 | "+" |
示例:
String a ="3";
int b = 4;
System.out.println(a+b);
//条件是string,不是char。
char c1 = 'h';
char c2 = 'i';
System.out.println(c1+c2);
//通过加空字符串,让整个+都变成连接符
System.out.println(''+c1+c2);
输出:
34
209
hi
九、⭐运算符优先级
优先级 | 运算符 | 类 |
1 | () | 括号运算符 |
2 | !、+ (正号) 、- (负号) | 一元运算符 |
2 | ~ | 位逻辑运算符 |
2 | ++、- - | 递增与递减运算符 |
3 | *、/、% | 算术运算符 |
4 | +、- | |
5 | <<、>> | 位左移、右移运算符 |
6 | >、>=、<、<= | 关系运算符 |
7 | ==、!= | |
8 | & | 位运算符、逻辑运算符 |
9 | ^ | |
10 | | | |
11 | && | 逻辑运算符 |
boolean s1=true,s2=true,s3=false;
System.out.println(s1||s2&&s3); //非>与>或
输出:
应为:s1||(s2&&s3)
故:true