运算符
运算符的种类:
-
算术运算符:+,-,*,/,%(取余,模运算 ),++(自加),–(自减)
-
赋值运算符:=(右结合性,从右往左)
-
关系运算符(返回的结果只有true和false )逻辑运算符:&&,||,!:> , < , >= , <= , == (等于), !=(不等于),instanceof
-
逻辑运算符:&&,||,!
-
位运算符:&,|,^, ~ ,>>,<<,>>>
-
条件运算符:? :
-
扩展赋值运算符:+=,-=,*=,/=
算术运算符
+可以连接字符串,当+两边出现String类型,计算机就会把其他类型都转化成String再进行连接
int a=10;
int b=20;
System.out.println(" "+a+b);
System.out.println(a+b+" ");
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2EAAjx1i-1616600992692)(C:\Users\shinikeaidexiaotaota\Desktop\Java\配图\3.24\1.png)]
如果字符串(" ")在前面会直接进行拼接
如果字符串(" ")在后面会还是进行运算
自加自减运算符
自加自减运算符是一元运算符
a++的意思:a=a+1
int a=3;
int b=a++;
int c=++a;
System.out.println(a);
System.out.println(b);
System.out.println(c);
++在后,先赋值,在自增
++在前,先自增,再赋值(–相同)
逻辑运算符
&&(与),||(或),!(非)
boolean a=true;
boolean b=false;
System.out.println("a&&b:"+(a&&b));
System.out.println("a||b:"+(a||b));
System.out.println("!(a&&b):"+!(a&&b));
&&(逻辑与运算):两个变量都为真,结果才为真
||(逻辑或运算):两个变量有一个为真,则结果为真
&&(逻辑与运算):如果是真,则变为假;如果是假,则变为真;(即:取反)
短路运算:Q1&&Q2,当Q1为假时,无须判断后面的Q2,结果一定为假
位运算符(效率极高)
&(与) | 0 | 0 | 0 |
---|---|---|---|
0(1) | 1(0) | 0 | |
1 | 1 | 1 | |
|(或) | 0 | 0 | 0 |
0(1) | 1(0) | 1 | |
1 | 1 | 1 | |
^(异或) | 0(1) | 0(1) | 0 |
0(1) | 1(0) | 1 |
~(取反):0变成1,1变成0
左 移:>>(相当于*2)
右移:>>(相当于/2)
*面试题:2 * 8=16,那在电脑中如何计算最快呢?
我们可以用到位运算符:System.out.println(2<<3);
这样输出的结果就是16了
原因:2在二进制中的表示是0000 0010,而2<<3的意思就是将那个1左移三位,会得到0001 0000(即:16)
条件运算符
? = 是一个三元运算符
x ? y : z 的含义:如果x==true,则结果为y,否则,结果为z
例如:找到工作?人生巅峰:咸鱼一条
扩展赋值运算符
+=
例如:a+=b的意思是a=a+b(-= *= /= 意思相同)
优先级
从高到低:
(),!,~,++(–),*,/,%,+,-,<<,>>,<, >, <=, >= ,==,!=,&,^,|,&&,||,? : ,赋值运算符
-= *= /= 意思相同)
优先级
从高到低:
(),!,~,++(–),*,/,%,+,-,<<,>>,<, >, <=, >= ,==,!=,&,^,|,&&,||,? : ,赋值运算符