操作符接受一个或多个参数,并生成一个新值。
加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)、取模(%)。
String类支持“+”和“+=”,表示字符串连接。
自动递增和递减:分为“前缀式”和“后缀式”。前缀式,执行运算,再生成值(即先加减,后使用);后缀式,先生成值,再执行运算(即先使用,再加减)。
关系操作符:小于(<)、大于(>)、小于或等于(<=)、大于或等于(>=)、等于(==)、不等于(!=)。
等于和不等于适用于所有的基本数据类型,而其他比较符不适用于boolean类型。而等于和不等于也适用于所有对象。
逻辑操作符“与”(&&)、“或”(||)、“非”(!)能根据参数的逻辑关系,生成一个布尔值(true或false)。
“短路”现象:一旦能够明确无误地确定整个表达式的值,就不再计算表达式余下部分。
十六进制数适用于所有整数数据类型,以前缀0x(或0X),后面跟随0-9或小写(或大写)的a-f来表示。
八进制数由前缀0以及后续的0-7的数字来表示。
按位操作符用来操作整数基本数据类型中的单个“比特”(bit),即二进制位。按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。
| 操作数 | 操作数 | 按位与(&) | 按位或(|) | 按位异或(^) |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
按位“非”(~),也称取反操作符,它属于一元操作符,只对一个操作符进行操作(其他按位操作符是二元操作符)。按位“非”生成与输入位相反的值:若输入0,则输出1;若输入1,则输出0。
按位操作符可与等号(=)联合使用,以便合并运算和赋值:&=、|=和^=都是合法的。~是一元操作符,不能与=联合使用。
对于布尔值,按位操作符具有逻辑操作符相同的效果,只是他们不会中途“短路”。
移位操作符操作的运算对象也是二进制的位。移位操作符只可用来处理整数类型。左移位操作符(<<)能按照操作符右侧指定的位数将操作符左边的操作数向左移动(在低位补0)。“有符号”右移位操作符(>>)则按照操作符右侧指定的位数将操作符左边的操作数向右移动。“有符号”右移位操作符使用“符号扩展”:若符号为正,则在高位插入0;若符号为负,则在高位插入1.Java中增加了一种“无符号”右移位操作符(>>>),它使用“零扩展”:无论正负,都在高位插入0.
三元操作符也称为条件操作符。boolean-exp?value0:value1;如果boolean-exp布尔表达式的结果为true,就计算value0,反之,就计算value1。
类型转换操作符。
类型转换运算可以显式地进行这种类型的转换,或者在不能自动进行转换的时候强制进行类型转换。
窄化转换(narrowing conversion)和扩展转换(widening conversion)。
操作符优先级:单目乘除位关系,逻辑三目后赋值。
-
单目: +(正数) , -(负数), ++, – 等
-
乘除: *, /, %, +, -
-
位: <<, >>, >>>
-
关系: >, >=, <, <=, ==, !=
-
逻辑: &&, ||, &, |, ^
-
三目: A > B ? X : Y
-
最后复制: =
posted on
浙公网安备 33010602011771号