* 算术运算符:二元运算符:+,-,*,/,% 一元运算符:++,--
赋值运算符:=
* 扩展运算符:+=,-=,*=,/=,%= 关系运算符:==,!=,>,<,<=,>=
* 逻辑运算符:&(或),|(与),!(非),^(异或);短路:&&,||,优先级:逻辑非>逻辑与>逻辑或
* 位运算符:&,|,^,~,<<,>>:
* &:两个数换算成二进制进行运算,当对应位上的数都为1时取1,否则取0,如:3、4 进行位与(&)运算,
结果为0;
* |:两个数换算成二进制进行运算,当对应位上的数有一个为1就取1,全是0取0,如: 3、4进行位或(|)
运算,结果为7;
* ^:两个数换算成二进制进行运算,当对应位上的数不同时取1,相同则取0,如:3、4 进行位与(&)运
算,结果为7;
* ~:取反,每个位上的数都取反,0变1,1变0,如~3=1111 1111 1111 1100,再加1: 1111 1111 1111
1101,这个就是-3的二进制表示:1111 1111 1111 1101。
* <<:左移,3<<2(相当于在右边加2个0) = 0000 0000 0000 1100 = 12,左移一位是 乘于2, 左移两位
是乘于4.
* >>:右移,与左移相反,右移一位是除于2.
* 条件运算符(三元运算符):x ? y: z:若满足x结果就是y,否则是z
* 字符串连接符:+
byte a = 1;
int b = 2;
long l = 4L;
// byte c = a+b;会报错,结果类型是int
// int i = b+l;会报错,结果是long类型
float f = 3.12F;
double d = 3.34;
// float g = f+d; 会报错,结果是double 型
// %取模运算,结果的正负和左边的一致
System.out.println(-9 % 5);// 结果是-4
int j = ++b;// 这是b先自增后再把值赋值给j
System.out.println(j);// 结果是3
System.out.println(b);// 结果是3
int o = b++;// 先是给o赋值,b再自增
System.out.println(o);// 结果是3
System.out.println(b);// 结果是4
int p = 3;
int y = 4;
p += y;// 相当于 p = p+y;
System.out.println(p);
p = 3;
p *= y + 3;// 相当于p = p*(y+3)
System.out.println(p);
boolean bl = p > 2 | y < 4;// |表示或,有一个是true结果为true
System.out.println(bl);
boolean bl2 = !(p > 2);
System.out.println(bl2);// !非,取反。
boolean bl3 = bl ^ bl2;// ^异或,两个相同结果为false,两个不同结果为true,比较两个是 否不同。
System.out.println(bl3);
// 短路运算符可以有效的提高效率
boolean duanLu = 3 > 4 && 8 < 9 && 1 > 0;// &&短路与,当发现有一个是false的时候直接返回false,后面不再看。
System.out.println(duanLu);
boolean duanLu2 = 3 > 4 || 8 < 9 || 1 > 0;
System.out.println(duanLu2);// ||短路或,当发现有一个是true的时候直接返回true,后面不再看。
int score = 50;
String type = score > 60 ? "及格" : "不及格";
System.out.println(type);