运算符总结
运算符是用来计算数据的符号。数据可以是常量,也可以是变量。被运算符操作的数我们称为操作数。
算数运算符
++/--
++ 运算符,会在原有值的基础上自增1,
-- 运算符,会在原有值的基础上自减1。
i++,i在前时,先赋值,在+1
++i,i在后时,先+1,在计算
赋值运算符
举例
a += b <==> a = a + b
比较运算符(条件运算符)
定义
比较运算符,又叫关系运算符,它是用来判断两个操作数的大小关系及是否相等关系的,结果是布尔值true或者false。
注意
赋值运算符的 = 符号与比较运算符的 == 符号是有区别的,如下:
• 赋值运算符的 = 符号,是用来将 = 符号右边的值,赋值给 = 符号左边的变量;
• 比较运算符的 == 符号,是用来判断 == 符号 左右变量的值是否相等的。
我们通过下面的一段代码,我们演示一下这个注意事项:
int a = 3;
int b = 4;
System.out.println( a=b );
System.out.println( a==b );
上面代码输出的结果第一个值为4,第二个值为false。
逻辑运算符
注意
1、短路与&&:参与运算的两边数据,有false,则运算结果为false;
2、短路或||:参与运算的两边数据,有true,则运算结果为true;
3、逻辑非! : 参与运算的数据,原先是true则变成false,原先是false则变成true。
1-1、&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为 true 时,整个运算结果才为 true,否则,只要有一方为 false,则结果为 false。
2-1、&&还具有短路的功能,即如果第一个表达式为 false,则不再计算第二个表达式。
3-1、&还可以用作位运算符,当&操作符两边的表达式不是 boolean 类型时,&表示按位与操作,
我们通常使用 0x0f 来与一个整数进行&运算,来获取该整数的最低 4 个 bit 位。例如,0x31& 0x0f 的结果为 0x01。
位运算符
<< 与 >>
<<
将一个数左移n位,相当于乘以了2 的n次方
举例
2 << 3 即:2 * 2的3次方 2 * 2 * 2 * 2 = 16
>>
将一个数右移n位,相当于除以以了2 的n次方
举例
8 >> 2 即:2 * 2的3次方 8 / 2 * 2 = 2
三元运算符
格式
(条件表达式)?表达式1:表达式2;
提示
3+2,使用算数运算符将操作数联系起来,称为算数表达式
3>2,使用比较运算符(也称为条件运算符)将操作数联系起来,这种情况,我们称为条件表达式。
举例:
System.out.println( 3>2 ? “正确” : “错误” )
String result = (a==b) ? “相等” : “不相等”;
int n = (3>2 && 4>6) ? 100 : 200;
public class T4 {
public static void main(String[] args) {
//三元运算符
System.out.println(3 > 2 ? "正确" : "错误"); //正确
int i = (3 > 2) ? 1 : 2;
System.out.println(i); //1
boolean a = (2 > 1) ? true : false;
System.out.println(a); //true
}
}
运算符优先级
下图是每种运算符的优先级,按照运算先后顺序排序(优先级相同的情况下,按照从左到右的顺序依次运算)