运算符
Java所支持的运算符
- 算术运算符:+,-,*,/,%,++,–
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>
- 条件运算符:? :
- 扩展赋值运算符:+=,-=,*=,/=
二元运算符
加减乘除
int a = 10;
int b = 20;
int c = 25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
System.out.println(c%a);//模运算,取余
运算时数据类型的转换
long a = 5465464132167L;
int b = 120;
short c = 10;
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 x = 10;
int y = 20;
System.out.println(x>y);//false
System.out.println(x<y);//true
System.out.println(y == x);//false
System.out.println(x != y);//true
++ – 自增和自减 一元运算符
int a = 5;
int b = a++;//执行完这行代码后,先给b赋值,再自增
//a = a+1;
System.out.println(a);
int c = ++a;//执行完这行代码后,先自增,给c赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
幂运算 2^3 2*2*2 =8(很多运算我们都会使用一些工具类来操作)
double pow = Math.pow(2.3);
System.out.println(pow);
逻辑运算符 与(and) 或(or) 非(取反)
boolean n = true;
boolean m = false;
System.out.println("n && m:"+(n && m));//逻辑与运算:两个变量都为真,结果才为true
System.out.println("n || m:")+(n || m));//逻辑或运算:两个变量有一个为真,结果就为true
System.out.println("!(n && m):"+!(n && m));//如果为真,则变为假;如果是假,则变为真.
短路运算
int a = 6;
boolean b = (a < 3)&&(b ++< 4);//a<3为false,则不执行后面的b++
System.out.println(a);
System.out,println(b);
位运算 效率极高
/*
A = 0011 1100
B = 0000 1101
---------------------------------------
A&B = 0000 1100(都为1才为1,否则为0)
A|B = 0011 1101(有1就为1,否则为0)
A^B = 0011 0001(10则为1,否则为0)
~B = 1111 0010(与B相反即可)
2*8 = 16 2*2*2*2
<<左移 *2
>>右移 /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);
拓展运算符
int a = 10;
int b = 20;
a += b;
a -= b;
System.out.println(a);
字符串连接符
int a = 10;
int b = 20;
System.out.println("" + a + b);
System.out.println(a + b + "");
三元运算符 必须掌握
//x ? y : z
//如果x == true ,结果为y,否则结果为z
int score = 80;
String type = score < 60 ?"不及格":"及格";
//if
System.out.println(type);