java之运算符
1.什么是运算符
定义:对常量和变量进行操作的符号,即运算符;
用运算符把常量或者变量连接起来的,符合java语法的式子就是表达式。不同运算符连接的表达式体现的是不同类型的表达式。
2.运算符的分类
(1)算术运算符:
a.常规算术运算
+ 加 比如:int c = a + b;
- 减 比如:int c = a - b;
* 乘 比如:int c = a * b;
/ 除 比如:int c = a / b;注:取结果的商,整数操作只能得到整数,想得到小数,必须有浮点数的参与运算;
% 取余 比如:int c = a % b;注:取结果的余数;
b.字符的“+”运算
字符在计算机底层对应的数值:
‘A’ ---------> 65 A-Z是连续的
‘a’ ---------> 97 a-z是连续的
‘0’ ---------> 48 0-9是连续的
算术表达式中包含多个基本数据类型的值的时候,整个表达式的类型会自动进行提升。
等级顺序:
byte,short,char —> int —> long —> float —> double
c.字符串的"+“运算
当 “+” 操作中出现了字符串时,”+"就不是算术运算,而是字符串连接符。
比如:“我的生日:” + 8 + 13
执行结果:我的生日:813
比如:8 + 13 + “是我的生日”
执行结果:21是我的生日
有多个 “+” 操作时,从左向右逐个执行,碰到字符串的时候就连接。
(2)赋值运算符
a.定义:
将一个常量赋值给一个变量(比如 int a = 10,将10赋值给int类型的变量a),也可以是将一个变量赋值给另一个变量(比如 a = b,将变量b赋值给变量a);
b.赋值运算符包含:
“=” 符号,直接赋值,例如 a = 10,是将10赋值给变量a;
“+=” 符号,加后赋值,例如 a += b,是将a + b 的值赋值给变量a;
“-=” 符号,减后赋值,例如 a -= b,是将a - b 的值赋值给变量a;
“*=” 符号,乘后赋值,例如 a *= b,是将a * b 的值赋值给变量a;
“/=” 符号,除后赋值,例如 a /= b,是将a / b 的商赋值给变量a;
“%=” 符号,取余后赋值,例如 a %= b,是将a / b 的余数赋值给变量a;
注:以上赋值符号,除了直接赋值 “=”以外,剩下的赋值符号都有隐含了强制类型转换。
(3)自增自减运算符
自增符号 ++
自减符号 –
单独使用的时候可以是 a++ 和 a-- ,也可以是 ++a 和 --a ;
不是单独使用的时候,如果是 a++ 和 a-- ,即变量a先参与其他运算,后自增和自减;如果是 ++a 和 --a ,则变量a先自增自减,后参与其他运算。
注:一般自增自减运算是单独使用
(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 < b,判断 a 的值是否小于 b,小于则为true,不小于则为false;
“<=” 符号,例如 a <= b,判断 a 的值是否小于等于 b,小于等于则为true,不小于等于则为false;
注:关系运算符的结果都是boolean类型,要么时true,要么是false。
(5)逻辑运算符
a.定义:是用来连接关系表达式的运算符,也可以连接布尔类型的常量或者变量。
b.逻辑运算符包含:
“&” 符号,逻辑与,例如 a&b,如果a和b都是true,则结果为true,否则为false;
“|” 符号,逻辑或,例如 a|b,如果a和b都是false,则结果为false,否则为true;
“^” 符号,逻辑异或,例如 a^b,如果a和b结果不同为true,结果相同则为false;
“!” 符号,逻辑非,例如 !a,如果a是true,则结果为false,如果a结果是false,则结果为true;
“&&” 符号,短路与,作用与 & 相同,但有短路效果。当左边为真时,右边也执行,如果左边为假,则右边不执行;
“||” 符号,短路或,作用与 | 相同,但有短路效果。当左边为假时,右边也执行,如果左边为真,则右边不执行;
注:最常用的逻辑运算符:&&,||,!。
(6)三元运算符
a.格式:关系表达式?表达式1:表达式2;
比如 a > b ? a : b;
如果 a > b 为真,则返回 a 的值;
如果 a > b 为假,则返回 b 的值;
上面的例子就是在求 a 和 b 之间较大的值。