运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 位运算符(用的少)
- 三元运算符
一、算术运算符
算术运算符: + - + - * / % (前)++ (后)++ (前)-- (后)-- +
注意: 1.如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是
负数则不可忽略,结果的符号和被模数符号一样。此外,取模运算的结果不 一定总是整数。
2.对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只
保留整数部分而舍弃小数部分。
3.(前)++ :先自增1,后运算
(后)++ :先运算,后自增1
自增1不会改变自身数据类型
4.(前)-- :先自减1,后运算
(后)-- :先运算,后自减1
5.连接符:+:只能使用在String与其他数据类型变量之间使用。
二、赋值运算符
赋值运算符:= += -= *= /= %=
符号: = 当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制 类型转换原则进行处理。
“=”支持连续赋
注意: 运算的结果不会改变变量本身的数据类型
三、比较运算符(关系运算符)
比较运算符(关系运算符): == != > < >= <= instanceof
注意: 1.比较运算符的结果是boolean类型,要么true,要么false
2.> < >= <= :只能使用在数值类型的数据之间。
3. == 和 != : 不仅可以使用在数值类型数据之间,还可以使用在其他引用类型 变量之间。
四、逻辑运算符
逻辑运算符: & && | || ! ^
注意: 1.逻辑运算符操作的都是boolean类型的变量。而且结果也是boolean类型
在Java中不可以写成3<x<6,应该写成x>3 &x<6 。
2.“&”和“&&”的区别:单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算
3.“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
4.异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
理解:异或,追求的是“异”
五、位运算符(用的少)
位运算符:<< >> >>> & | ^ ~
注意: 1.位运算符操作的都是整型的数据
2. << :在一定范围内,每向左移1位,相当于 * 2
>> :在一定范围内,每向右移1位,相当于 / 2
3.对于正数来说: 空出来的最高位拿
对于负数来说: >>右移以后,最高空出来的位拿1去补
>>> 右移以后,高空出来的位拿0
4.& | ^ 三种符号,把0当false,把1当true,然后按逻辑运算求值
5.~ 符号,利用 原码、反码、补码知识
六、三元运算符
(条件表达式)? 表达式1 : 表达式2
注意:1. 说明
① 条件表达式的结果为boolean类型
② 根据条件表达式真或假,决定执行表达式1,还是表达式2.
如果表达式为true,则执行表达式1。
如果表达式为false,则执行表达式2。
③ 表达式1 和表达式2要求是一致的,必须为同种类型。
④ 三元运算符可以嵌套使用
2. 凡是可以使用三元运算符的地方,都可以改写为if-else反之,不成立。
3. 如果程序既可以使用三元运算符,又可以使用if-else结构,那么优 先选择三元运算符。原因:简洁、执行效率高。
七、运算符的优先级