运算符
- 算数运算符 + - * / ++ –
- 赋值运算符 =
- 关系运算符 > < <= >= == !=
- 逻辑运算符 && || !
- 位运算符 & | …… ~ >> << >>>(了解就好)
- 条件运算符 ? :
- 扩展运算符 += -= *= 、=
二元运算
// 二元运算符
int a=10;
int b=20;
int c=25;
int d=25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
多元运算
long a=2313435432132L;
int b=65537;
short c=32767;
byte d=8;
System.out.println(a+b+c+d);//Long
System.out.println(b+c+d);//Int
System.out.println(c+d);//Int
//自动升级 默认为int
布尔运算
//关系返回结果 正确 错误 布尔值
int a=10;
int b=20;
int c=21;
System.out.println(b%c);
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
一元运算
//++ -- 自增自减 一元运算符
int a=3;
//a=a+1
int b=a++;
//c=a 然后a=a+1
int c=++a;
System.out.println(a);
System.out.println(b);
System.out.println(c);
类运算
例如幂运算
//幂运算 2^3 2*2*2=8
System.out.println(Math.pow(2,3));
逻辑运算符
//与(and) 或(or) 非(not)
boolean a=true;
boolean b=false;
System.out.println("a && b---"+(a && b));//两个都为true才为true
System.out.println("a || b---"+(a || b));//其中一个true就为true
System.out.println("!a---"+(!a));//取反
短路运算
//短路运算
int c=5;
boolean d=(c<4)&&(c++<4);
System.out.println(c);
System.out.println(d);
位运算
/*
A=0011 1100
B=0000 1101
-------------------------
A&B=0000 1100 相乘
A|B=0011 1101 有1就为1
A^B=0011 0001 相同为0 不同为1
~B=1111 0010 取反
2*8=16 2*2*2*2
效率极高
<< 相当于*2
>> 相当于/2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);
// 0000 0010 << 变成 0001 0000
//>>>不带符号的右移动 在正数的情况下 他们没有变化 但是在负数的情况下 没有1表示他是负号 所以会直接让值变混乱
System.out.println(16>>>3);//2
System.out.println(16>>3);//2
System.out.println(-16>>>3);//536870910
System.out.println(-16>>3);//-2
扩展赋值运算符
int a=10;
int b=20;
a+=b;//a=a+b
a-=b;//a=a-b
System.out.println(a);
//字符串连接符 +String类型
System.out.println(a+b+"");//字符串放后面就不会影响前面的运算
System.out.println(""+a+b);//字符串后面放+ 就会让后面的运算都变成字符串
}
条件运算符
//x ? y:z
//如果x==true 则结果为Y 否则为z
int score =80;
String a =score>60? "及格":"不及格";
System.out.println(a);
优先级
不需要特意学习 使用括号去保证优先级