运算符(operator)
算术运算符
+、-、*、/(考虑小数可转换为double)、%(取余,模运算)、++(自增)、--(自减)
+:不同类型相加,只要有long类型,总和为long类型,否则都是int类型。
public static void main(String[] args) {
long a=123123123123123L;
int b=123;
short c=10;
byte d=8;
System.out.println(a+b+c+d);//输出结果为long类型的123123123123264
System.out.println(b+c+d);//输出结果为int类型的141
System.out.println(c+d);//输出结果为int类型的18
}
++:(a++:先赋值再自增;++a先自增再赋值)(a+=b-----a=a+b)(a-=b-----a=a-b)
public static void main(String[] args) {
int a=3;
int b=a++;
System.out.println(a);
System.out.println(b);//b=a++,先赋值再自增,b=a=3,a=a+1=4
int c=++a;
System.out.println(a);
System.out.println(c);//c=++a,先自增再赋值,a=a+1=5,c=a=5
}
赋值运算符
=
关系运算符
<、>、>=、<=、==、!=、instanceof
逻辑运算符
&&(与,两个全为真输出结果才是真)、||(或,一个为真输出结果就是真)、!(非,为真则输出结果为假,为假则输出结果为真)
public static void main(String[] args) {
boolean a=true;
boolean b=false;
System.out.println("a&&b");//输出结果为FALSE
System.out.println("a||b");//输出结果为true
System.out.println("!(a&&b)");//输出结果为true
}
短路运算(执行第一个判断为FALSE时将不再执行下一个)
int c=5;
boolean d=(c<4)&&(c++<4);
System.out.println(d);//输出结果为FALSE
System.out.println(c);//输出结果为5,若不短路,也就是全部执行,那么C应该为6.
位运算符
- &(上下数字对应位比较,若都为1,才是1,否则为0)
- |(上下数字对应位比较,若都为0,才是0,否则为1)
- ^(上下数字对应位比较,若相同,则是0,否则为1)
- ~B(对B取反)
- >>(二进制右移)、<<(二进制左移)、>>>
如:
A=0011 1100
B=0000 1101
则:A&B=0000 1100
A|B=0011 1101
A^B=0011 0001
~B=1111 0010
例题:2*8的最快运算方法:位运算
System.out.println(2<<3);//输出结果为16
0 | 0000 0000 |
---|---|
1 | 0000 0001 |
2 | 0000 0010 |
4 | 0000 0100 |
8 | 0000 1000 |
16 | 0001 0000 |
条件运算符
?
条件运算符为三元运算:X?Y:Z(若X==true,则结果为Y,否则为Z)
int score=95;
String type=score<60?"不及格":"及格";
System.out.println(type);//输出结果为及格
扩展赋值运算符
+=、-=、*=、/=
字符串连接符
int A=10;
int B=20;
System.out.println(A+B);//输出结果为30
System.out.println(" "+A+B);//输出结果为1020
System.out.println(A+B+" ");//输出结果为30
标签:0000,int,System,运算符,println,out
From: https://www.cnblogs.com/HANR/p/18287894