运算符
运算符:对常量或者变量进行操作的符号。
表达式:用运算符把常量或者变量连接起来符合Java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。
1.1 算术运算符
符号
作用
说明
+
加
与基础数学“+”相同
-
减
与基础数学“-”相同
*
乘
与基础数学“x”相同
/
除
与基础数学“÷”相同,取商
%
取余
获取的是两个数据做除法的余数
注意:/和%的区别在于,两个数据做除法,/取结果的商,%取结果的余数。整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
字符的加操作
是拿字符在计算机底层对应的数值来进行计算的。常用字符代表数字如下(详见ASCII码表):
'A' --------> 65 A-Z是连续的
'a' --------> 97 a-z是连续的
'0' --------> 48 0-9是连续的
算数表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。提升规则如下:
byte类型,short类型和char类型将被提升到int类型
整个表达式的类型自动提升到表达式中最高等级操作数同样的类型
等级顺序:byte,short,char --> int --> long --> float --> double
字符串的加操作
当 "+" 操作中出现字符串时,这个 "+" 是字符串连接符,而不是算数运算。
在 "+" 操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行 "+" 操作时,从左到右逐个执行。
1.2 赋值运算符
符号
作用
说明
=
赋值
a=10,将10赋值给变量a
+=
加后赋值
a+=b,将a+b的值给a
-=
减后赋值
a-=b,将a-b的值给a
*=
乘后赋值
a*=b,将axb的值给a
/=
除后赋值
a/=b,将a÷b的商给a
%=
取余后赋值
a%=b,将a÷b的余数给a
注意:扩展的赋值运算符隐含了强制类型转换。
1.3 自增自减运算符
符号
作用
说明
++
自增
变量的值加1
--
自减
变量的值减1
注意事项:
++ 和 -- 既可以放在变量的后边,也可以放在变量的前边。
单独使用的时候,++ 和 -- 无论是放在变量的前边还是后边,结果是一样的。
参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做 ++ 或 -- 。
参与操作的时候,如果放在变量的前边,先拿变量做 ++ 或 -- ,后拿变量参与操作。
最常见用法:单独使用。
1.4 关系运算符
符号
说明
==
a==b,判断a和b的值是否相等,成立为true,不成立为false
!=
a!=b,判断a和b的值是否不相等,成立为true,不成立为false
>
a>b,判断a是否大于b,成立为true,不成立为false
>=
a>=b,判断a是否大于等于b,成立为true,不成立为false
<
a
<=
a<=b,判断a是否小于等于b,成立为true,不成立为false
注意事项:关系运算符的结果都是boolean类型,要么是true,要么是false。千万不要把"=="误写成"="。
1.5 逻辑运算符
在数学中,一个数据x,大于3,小于6,可以这样来进行表示:33 && x<6。
&&其实就是一个逻辑运算符。逻辑运算符,就是用来连接关系表达式的运算符。当然,逻辑运算符也可以直接连接布尔类型的常量或者变量。
符号
作用
说明
&
逻辑与
a&b,a和b都是true,结果为true,否则为false
|
逻辑或
a|b,a和b都是false,结果为false,否则为true
^
逻辑异或
a^b,a和b结果不同为true,相同为false
!
逻辑非
!a,结果和a的结果正好相反
短路逻辑运算符
符号
作用
说明
&&
短路与
作用和&相同,但是有短路效果
||
短路或
作用和|相同,但是有短路效果
注意事项:
逻辑与&,无论左边真假,右边都要执行。
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
逻辑或|,无论左边真假,右边都要执行。
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
1.6 三元运算符
格式:关系表达式?表达式1:表达式2;
范例:a > b ? a : b;
计算规则:首先计算关系表达式的值。如果为true,表达式1的值就是运算结果;如果为false,表达式2的值就是运算结果。