运算符
- 算术运算符:+, -, *, /, %, ++, --
int a=10;
int b=20;
int c=25;
int d=25;
System.out.println(a+b);//30 加
System.out.println(a-b);//-10 减
System.out.println(a*b);//200 乘
System.out.println(a/(double)b);//0.5 除 (10/20=0.5 取整为0) 解决办法:转其中一个为double
long a=12121212121212L;
int b=123;
short c=10;
byte d=8;
System.out.println(a+b+c+d);//long 与long一起运算结果是long类型,与double运算结果是double类型
System.out.println(b+c+d);//int
System.out.println(c+d);//int
//++ --自增 自减 一元运算符
int a=3;
int b=a++;//当前 b=3 a=4 先给b赋值,后a自增
//a=a+1
int c=++a;//当前 c=5 a=5 b=3 先自增,后给c赋值
System.out.println(a);//5
System.out.println(b);//3
System.out.println(c);//5
//幂运算 2^3 2*2*2=8 很多运算会使用一些工具类操作!
double pow = Math.pow(2, 3);
System.out.println(pow);
- 赋值运算符: = ,+= ,-= ,*= ,/= ,%=
//赋值运算符 += -=
int a=10;
int b=20;
a+=b; //a=a+b;
a-=b; //a=a-b;
System.out.println(a);
System.out.println(b);
//字符串连接符 + , String
System.out.println(a+b); //30
System.out.println(""+a+b); //1020
System.out.println(a+b+""); //30
- 关系运算符: >, <, >=, <=, ==, != instanceof
//关系运算符的返回结果:正确,错误 布尔值
int a=10;
int b=20;
int c=21;
System.out.println(c%a);//1 取余数 模运算 21/10=2....1
System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a=b);//false
System.out.println(a!=b);//true
- 逻辑运算符:&&, ||, !
//与(and) 或(or) 非(取反)
boolean a=true;
boolean b=false;
System.out.println("a && b:"+(a&&b));//false 逻辑与运算:两个变量都为真,结果才为true
System.out.println("a || b:"+(a||b));//true 逻辑或运算:两个变量有一个为真,结果就为true
System.out.println("!(a && b):"+(!(a&&b)));//true ///如果是真,则为假,如果是假则为真
//短路运算
int c=5;
boolean d=(c<4)&&(c++<4);
System.out.println(d);//false
System.out.println(c);//5
- 位运算: &, |, ^, ~, >>, <<, >>>(了解)
/*
A=0011 1100
B=0000 1101
-----------------
A&B =0000 1100
A|B =0011 1101
A^B =0011 0001
~B =1111 0010
面试题:2*8怎么运算最快 2*2*2*2
效率极高
<<左移 *2
>>右移 /2
0000 0000 0
0000 0001 1 2^0 1后几个零就是几次幂
0000 0010 2 2^1
0000 0011 3
0000 0100 4 2^2
0000 1000 8 2^3
0001 0000 16 2^4
*/
System.out.println(6>>2);
//<<左移 *2
//>>右移 /2
// 6>>2 == 6/2/2
// 5>>3 == 5/2/2/2
// 3<<2 == 3*2*2
// 3<<3 == 3*2*2*2
- 三元运算符(条件运算符)
// x ? y : z 如果x==true,则结果为y,否则结果为z
int score = 80;
String type=score<60?"不及格":"及格"; //必须掌握
System.out.println(type);