算数运算符
比较运算符
逻辑运算符
位运算符
赋值运算符
三元运算符
// 算数运算符
// + - * / %
int a = 12;
int b = 23;
int c = a + b;
System.out.println(c);// 35
System.out.println(a+b);// 35
System.out.println(a-b);// -11
System.out.println(a*b);// 276
System.out.println(a/b);// 0 整数与整数运算结果都为整数
System.out.println((double) a/b);// 0.5217391304347826
System.out.println(a%b);// 12
System.out.println();
// % 取余正负号与前面数正负号相同
System.out.println(12%23);// 12
System.out.println(12%-23);// 12
System.out.println(-12%23);// -12
System.out.println(-12%-23);// -12
System.out.println();
// a++ a-- 先赋值再自增自减
// ++a --a 先自增自减再赋值
int d = a++;
System.out.println(d);//12
System.out.println(a);//13
System.out.println();
int e = ++b;
System.out.println(e);// 24
System.out.println(b);// 24
System.out.println();
// 将a 当成普通变量
a = 12;
a = a++;
System.out.println(a);// 12
a = ++a;
System.out.println(a);// 13
System.out.println();
int i=1, j=2;
int k = i++ + ++i +j++ + ++j;
System.out.println(i);// 3
System.out.println(j);// 4
System.out.println(k);// 10
// 比较运算符
// < > <= >= == !=
// 比较基本数据类型的值是否一样
// 结果是boolean类型
逻辑运算符
// && 逻辑与运算符 || 逻辑或运算符 ! 逻辑非运算符
// 结果是boolean类型
短路现象
// 多个表达式运算时,前面的表达式已经可以明确了表达式的结果了
//后面的表达式则不需要运行了
// && 第一个为false 值为false
// || 第一个为true 值为true
boolean result;
int a =0;
int b =0;
result = a++ > 0 && b++ <=0;
System.out.println(a+"----------"+b);// 1-----0
a=0;
b=0;
result = a++ >= 0 || b++ <=0;
System.out.println(a+"----------"+b);// 1------0
位运算
位运算 二进制运算
& 按位与运算 将A和B转换成二进制 右侧对齐
两者都为1 结果才为1 否则为0
1100
11
----
0000 // 0
System.out.println(12 & 3); // 0
| 按位或运算 将A和B转换成二进制 右侧对齐
两者有1 结果才为1 其余为0
1100
0011
----
1111 // 15
*/
System.out.println(12 | 3);// 15
/*
^ 异或运算 将A和B转换成二进制 右侧对齐
两者不同为1 相同则为0
1100
0011
----
1111 // 15
*/
System.out.println(12^3);// 15
// ~ 反码运算 将二进制中的 1换成0 0换成1
System.out.println(~12);// 11110011 = -13
// << 向左移位运算符 向左移动几位 移位后补0
System.out.println(3<<2);// 11 1100 12
// >> 向右移位运算符 向右移位几位
System.out.println(12>>2);// 1100 11 3
// >>> 按位右移补零操作符
System.out.println(12>>>2);// 1100 0011 3
& | 可以对boolean 进行运算得到boolean值
boolean bool = true && false; // & 和 && 值一样
逻辑与运算符 && 有短路现象
按位与运算符 & 无短路现象
// 赋值运算符
= += -= *= /= %=
// 三元运算符
A ? B : C A boolean类型
true 是取 B 值 false取 C 值
System.out.println((13>12)?12:13); // true 12
System.out.println((13<12)?12:13); // false 13
// 12.2 + 3 double
System.out.println(12.2 +3); // double 15.3