运算符
大致可以分为以下几类:算术运算符、赋值运算符、一元运算符、逻辑运算符、位运算符、关系(比较)运算符、三元运算符。
算术运算符
算术运算符包含:+, - , * , / , % ( 取模)。
+ : 当运算符两边,有一方是字符串,表示是字符串连接, 否则进行相加运算(如果不是数字类型,则隐式进行转换)
-, * , / ,% : 这几个符号都只能进行数字运算, 不支持字符串类型
System.out.println(9%3); //0
System.out.println(9/3); //3
System.out.println(9/6); // 结果 1 只有整数参与,小数部分舍去
System.out.println(9/6.0); //结果 1.5 有小数
赋值运算符
赋值运算符包含: = , += , -= , *= , /= , %=。
int num = 6;
num += 5; //num = num+ 5
num -= 5; // num = num -5;
num *= 5; // num = num * 5;
num /= 5; //num = num / 5;
num %= 5; // num = num % 5;
一元运算符
一元运算符: 运算符所需要的操作数的个数为1个,++ ,–。
++ : 表示 自增+1 ;
-- : 表示 自减-1 ;
当只有一条语句时,不管++加前,还是++再后都没有影响
当只有一条语句时,不管--加前,还是--再后都没有影响
在复合语言时,++再前,表示时,使用+1后的值 , ++再后,表示使用+1之前的值
在复合语言时,--再前,表示时,使用-1后的值 ,--再后,表示使用-1之前的值
关系(比较)运算符
关系运算符有: > ,< , >= ,<= , ==, !=。
结果类型为Boolean。
5>3; //true
5<3; //false
5>=3; //false
5<=3; //false
5==3; //false
5!=3; //true
逻辑运算符
逻辑运算符有: &&(并且)、 || (或者)、!(非)。
并且 && 短路与, 有一个条件为false ,后面的条件将不再进行判断
或者 || 短路或, 有一个条件为true,后面的条件将不再进行判断
非 ! 取反
位运算符
&: 所有的条件都会进行判断
|:所有条件都会进行判断
^:异或
// 还有一个同或,但是没有符号表示
~ : 按位取反
<< (左移) 乘2 (了解)
>> (右移) 除2 (了解)
//左移与右移是直接操作二进制数,理论上是比乘除要快
三元运算符
语法: (条件表达式)?真的处理:假的处理;
5>3 ? 1:0; //1
5<3 ? 1:0; //0
运算符的优先级
见图。