运算符
算数运算符
// 算数运算符:+,-,*,/,%(取余/模运算),++(自增),--(自减)
int a = 10;
int b = 6;
System.out.println(a+b); // 16
System.out.println(a-b); // 4
System.out.println(a*b); // 60
System.out.println(a/(double)b); // 1.667
System.out.println(a%b); // 4
System.out.println(a++); // 10
System.out.println(a); // 11
System.out.println(++a); // 12
System.out.println(a); // 12
赋值运算符:=
- 拓展赋值运算符:+=、-=、*=、/=
// 赋值运算符拓展
int i1 = 10;
int i2 = 20;
i1 += i2; // i1 = i1 + i2
System.out.println(i1); // 30
关系运算符
// 关系运算符:>,<,==,>=,<=,!=,instanceof(测试一个对象是否为一个类的实例)
// 返回结果为布尔值
int c = 10;
int d = 20;
System.out.println(c>d); // false
System.out.println(c<d); // true
System.out.println(c==d); // false
System.out.println(c>=d); // false
System.out.println(c<=d); // true
System.out.println(c!=d); // true
逻辑运算符
// 逻辑运算符:&&、||、!
boolean b1 = true;
boolean b2 = false;
System.out.println(b1&&b2); // false
System.out.println(b1||b2); // true
System.out.println(!b1); // false
// 短路运算
int i = 5;
boolean b3 = (i<5)&&(i++<5); // 后半部分被短路,不执行自增运算
System.out.println(b3); // false
System.out.println(i); // 5
位运算符
位运算符:&、|、~、(异或:同0异1)、>>、<<、>>>
A = 0011 1100
B = 0000 1101
A&B:0000 1100
A|B:0011 1101
~B: 1111 0010
AB:0011 0001
移位运算效率极高
<<:左移(*2)
>>:右移(/2)
>>>:无符号右移,忽略符号位,空位都以0补齐
System.out.println(8<<1); // 16
条件运算符(三元运算符)
condition ? x : y
,condition == true,则结果为x,否则结果为y
// 条件运算符(三元运算符)
int score = 80;
String result = score>60 ? "及格" : "不及格";
System.out.println(result); // 及格
字符串连接符
- 连接符两边有String的,会转换为字符串进行连接
- 字符串在前,后面的运算元会转为字符串
- 字符串在后,前面的运算元先进行运算,再与字符串进行连接
int a = 10;
int b = 20;
System.out.println(""+a+b); // 1020
System.out.println(a+b+""); // 30