Java运算符基础
运算符概念
- 表达式:式子,算是–a+b
- 操作数:参与运算的数–a和b
- 运算符:处理运算的符号–+ -*/
运算符类别
-
赋值运算符
-
“=”它是一个二元运算符(对两个操作数作处理)功能是将右方操作数所含的值赋值给左方的操作数
-
左边的操作数必须是一个变量,右边的操作数可以是任意表达式(包括变量、常量)
-
赋值运算符可以连在一起使用。(同时给多个变量赋值)一般不推荐使用
-
含有两个以上的“=”运算符时,会从最右方开始处理(因为“=”处理顺序是从右到左)
-
操作符 描述 例子 = 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C + = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C + = A等价于C = C + A - = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C - = A等价于C = C - A * = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C * = A等价于C = C * A / = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C / = A,C 与 A 同类型时等价于 C = C / A (%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 C%= A等价于C = C%A << = 左移位赋值运算符 C << = 2等价于C = C << 2 >> = 右移位赋值运算符 C >> = 2等价于C = C >> 2 &= 按位与赋值运算符 C&= 2等价于C = C&2 | = 按位或赋值操作符 C | = 2等价于C = C | 2 ^ = 按位异或赋值操作符 C ^ = 2等价于C = C ^ 2
-
-
算术运算符
-
算术运算符分为一元运算符和二元运算符。一元运算符只有一个操作数;二元运算符有两个操作数,运算符位于两个操作数之间。
-
一元运算符有:正(+)、负(-)、自增(++)、自减(--)
-
一元运算符与其前后的操作数之间不允许有空格,否则编译时会出错
-
二元运算符有:+、-、*、/、%、
-
+、-、运算符,还可以作为数据的正负符号
-
除法运算时,0不能作为除数,,否则报错:AirthemeticExcption
-
自增自减运算符
- 自增、自减运算符,a++、a- - ,它们是单目运算符
- 作用是变量值加1,或者减1 ,操作元必须是一个整型或者浮点型变量
- 前缀,放在操作元之前,++a,- -a ,会先将变量的值(加减),再使用此变量参与表达式的计算
- 后缀,放在操作元之后,a++,a- - ,先使用此变量参与表达式的计算,再将变量的值(加减)
- ( )优先级高于自增、自减运算符的优先级
-
比较运算符
-
比较运算符属于二元运算符,一共有6个用于程序中的变量之间以及其他类型的信息之间的比较
-
比较运算符的运算结果是Boolean型,对应的关系成立时,结果:true,否则为false
-
所有的比较运算符通常作为判断的依据用在条件语句中
-
运算符 可操作数据类型 > 整型、浮点型、字符型 < 整型、浮点型、字符型 >= 整型、浮点型、字符型 <= 整型、浮点型、字符型 == 基本数据类型、引用型 != 基本数据类型、引用型
-
-
逻辑运算符
-
返回类型为布尔值的表达式,还可以比较运算符组合在一起构成一个更复杂的表达式,例:(a>b&&a==b)
-
操作元必须是Boolean类型数据,
运算符 含义 用法 结合方法 && 逻辑与(短路与) op1&&op2 从左到右 || 逻辑或 op1||op2 从左到右 ! 逻辑非 !op 从右到左 -
&&:满足两侧表达式都判断为true,结果为true
-
||:满足一个表达式判断为true,结果为true
-
!:反转操作数的逻辑状态,如果条件为true,则通过逻辑非运算符将得到false
-
-
位运算符
-
位运算是完全针对位方面的操作,整型数据在内存中以二进制形式保存(数字在二进制上的位移运算)
-
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型
位运算符作用在所有的位上,并且按位运算
位运算符号 运算类型 描述 例子 & 双目运算符 如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100 | 双目运算符 如果相对应位都是 0,则结果为 0,否则为 1 (A | B)得到61,即 0011 1101 ^ 双目运算符 按位异或,如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001 〜 单目运算符 (按位非)按位取反,运算符,翻转操作数的每一位,即0变成1,1变成0。 (〜A)得到-61,即1100 0011 << 位移操作 按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到240,即 1111 0000 >> 位移操作 按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到15即 1111 >>> 位移操作 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 A>>>2得到15即0000 1111 - 除了&(按位与)、|(按位或)外,其他的只能用于处理整数的操作数
-
-
条件运算符
- 条件运算符也被称为三元运算符。该运算符有3个操作元,且需要判断布尔表达式的值
- 该运算符的主要是决定哪个值应该赋值给变量
- 格式: 条件表达式?值1:值2
- 运算规则为:若条件式的值为true,则整个表达式取值1,否则取值2
-
instanceof运算符
- 该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)
- 运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真
- 如果被比较的对象兼容于右侧类型,该运算符仍然返回true
- 格式:( Object reference variable ) instanceof (class/interface type),结果为布尔值
运算符优先级
-
编写程序时尽量使用括号运算符来限定运算次序,避免产生错误的运算顺序
-
类别 操作符 关联性 后缀 () 、[]、 . (点操作符) 左到右 一元 ++ 、–、(正)+、(负)- 从左到右 一元 ++、 --、 +、 - 、~ 、! 从右到左 乘性 *、 /、% 左到右 加性 + 、- 左到右 移位 >>、 >>>、 << 左到右 关系 > 、>=、 <、 <= 左到右 相等 ==、 != 左到右 按位与 & 左到右 按位异或 ^ 左到右 按位或 | 左到右 逻辑与 && 左到右 逻辑或 | | 左到右 条件 ?: 从右到左 赋值 = 、+ =、 - = 、* = 、/ =、%=、 >> =、 << =、&=、 ^ = 、| = 从右到左 逗号 , 左到右 -
简单划分(高到低)
增量和减量运算
算术运算
比较运算
逻辑运算
赋值运算