运算符
算数运算符:
+,-,*,/,%,++,–
- %:模运算(取余数)。
- ++:a++ 即先赋值在运算;++a即先运算在赋值;–同理。
public class Demo01 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
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/b);//结果0(false),默认int
System.out.println(a/(double))b);//结果0.5
System.out.println(d%a);//结果5
"=============================================="
long a = 100000000L;//此处后缀L尽量大写。
int b = 123;
short c = 8;
byte d = 6;
System.out.println(a+b+c+d);//结果100000137 默认long类型
System.out.println(b+c+d);//结果137
System.out.println(c+d);//结果14
"=============================================="
int a = 9;
int b = a--;
int b4 = ++a;
int b2 = a--;
int b1 = a--;
int b3 = --a;
System.out.println(a);//结果6
System.out.println(b);//结果9
System.out.println(b4);//结果9
System.out.println(b2);//结果9
System.out.println(b1);//结果8
System.out.println(b3);//结果6
}
}
赋值运算符:
=
关系运算符:
>,<,>=,<=,==,!=,instancefo
- 关系运算符返回的结果为:正确、错误,即布尔值。
- ==(等于)、!=(不等于)
public class Demo03 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 21;
System.out.println(a>b);//结果false
System.out.println(a<b);//结果true
System.out.println(a==b);//结果false
System.out.println(a!=b);//结果true
}
}
逻辑关系运算符:
&&,||,!
- &&(与):逻辑"与"运算,两个变量都为真,结果才为true。
- ||(或):逻辑"或"运算,两个变量其中一个变量为真,结果才为true。
- !(非):逻辑"非"运算,结果为真,则为假;结果为假,则为真。
- 短路运算:在进行逻辑"与"运算时,若运算前一个值为"false"时,后一个值是不进行运算的。在进行逻辑"或"运算时,若运算前一个值为"true"时,后一个值是不进行运算的。
public class Demo05 {
public static void main(String[] args) {
boolean a = true;
boolean b = fales;
System.out.println("a && b:"+(a&&b));//结果:a && b:false
System.out.println("a || b:"+(a&&b));//结果:a || b:true
System.out.println("!(a && b):"+(a&&b));//结果:!(a && b):true
"=============================================="
int c = "5";
boolean d1 = (c++<10)&&(c<4);
System.out.println(d1);//结果:false
System.out.println(c);//结果:c=6
boolean d = (c<4)&&(c++<10);
System.out.println(d);//结果:false
System.out.println(c);//结果: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 = 16
效率高
<< 左移 *2
>> 右移/2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
public class Demo06 {
public static void main(String[] args) {
System.out.println(2<<3);//结果:16
条件运算符:
?:
**x ? y : z **
如果X==true,则结果为Y,否则结果为z。
public class Demo08 {
public static void main(String[] args) {
int _努力工作 = 100;
int _不努力工作 = 50;
String typ = _努力工作 >_不努力工作 ?"天天996":"人生巅峰";// 必须掌握
System.out.println(typ);//天天996
}
}
扩展复制运算符:
+=,-=,*=,/=
a+=b:代表 a=a+b
a-=b:代表 a=a-b
a=b:代表 a=axb*
a/=b:代表 a=a/b
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b;//a=a+b=30
a-=b;//a=a-b=-10
a*=b;//a=a*b=200
a/=b;//a=a/b=0(需要对a、b转化为double,值才为0.5)
}
}