Java运算符的那些事(最全知识点)
文章目录
1. 算术运算符的基本用法
- 运算符:
- 用于对常量和变量进行操作的符号
- 表达式:
- 用运算符连接起来的, 符合Java语法的式子.
- 不同的运算符连接的表达式是不同类型的表达式
- 如:
a + b
: 算术表达式a = b
: 赋值表达式a > b
: 关系表达式a && b
: 逻辑表达式
- 如:
- 5种运算符:
- 算数运算符
+
: 加-
: 减*
: 乘/
: 除 (整数相除结果是整数, 有浮点数参与运算, 结果才为浮点数) 除法: 4 / 3 商1 余1%
: 取余++
: 自增1--
: 自减1
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 三元运算符
- 算数运算符
- 注意:
- 整数相除只能得到整数, 有小数参与运算才能得到小数
- 如:
10 / 3 = 3
,10.0 / 3 = 3.33333333335
- 如:
- 整数相除只能得到整数, 有小数参与运算才能得到小数
2.算术运算符取余和除法的区别
- 取余:
- 两数相除后的余数, 5 % 3 = 2
- 除法:
- 两数相除后的商, 5 / 3 = 1
3.字符和字符串参与加法操作
-
字符参与加法运算:
-
其实是拿字符在计算机中存储的数据值来参与运算的
- ‘A’ = 65
- ‘a’ = 97
- ‘0’ = 48
-
注意:
- char类型在算数运算时按照数值来计算
- 如果打印的是char类型, 则打印出的是数值所代表的字符, 而不是数值
- 如果打印的是char和数字计算的结果, 因为运算会有隐式类型转换, 所以最终打印的是数字
System.out.println('A'); // 打印字符A System.out.println('A' + 0); // 打印65. 因为char与int计算, char类型提升为int, 最终计算结果 是int类 型, 65 + 0 = 65. 相当于System.out.println(65);
-
-
字符串参加加法(拼接)
- 其实不做加法运算, 而是拼接字符串
System.out.println("hello" + 10);
: hello10System.out.println(10 + 20 + "hello");
: 30hello- 注意:
10 + 20 + "hello"
中, 10和20会先进行算术加法得到30, 才能和字符串"hello"拼接
- 注意:
System.out.println(10 + 10 + "");
: 20
- 其实不做加法运算, 而是拼接字符串
4.算术运算符++和–的用法
++
: 自增, 用于对变量加一--
: 自减, 用于对变量减一- 运算符放在变量前和变量后的区别:
- 单独使用时(即只有
i++;
或++i;
), 没有区别, 都是自增 - 参与其他操作时:
int a = i++
:- 先使用i本身的值作为i++表达式的值
- 然后i再自增(i自增后不影响之前i++表达式的值)
- 最后将等号右边的值赋值给左边a
int a = ++i
:- i先自增
- 然后将自增后的值作为++i表达式的值
- 最后将等号右边的值赋值给左边
--
同理
- 单独使用时(即只有
5.赋值运算符的基本用法和扩展用法
- 基本赋值运算符:
=
: 将等号右边的值赋给左边的变量,int a = 10;
- 扩展赋值运算符:
+=
: 将运算符左边和右边的数据做加法, 然后将结果赋值给左边.a += 10;
相当于a = (a的类型)(a + 10);
-=
: 将运算符左边和右边的数据做减法, 然后将结果赋值给左边.a -= 10;
相当于a = (a的类型)(a - 10);
*=
: 将运算符左边和右边的数据做乘法, 然后将结果赋值给左边.a *= 10;
相当于a = (a的类型)(a * 10);
/=
: 将运算符左边和右边的数据做除法, 然后将结果赋值给左边.a /= 10;
相当于a = (a的类型)(a / 10);
%=
: 将运算符左边和右边的数据做取余, 然后将结果赋值给左边.a %= 10;
相当于a = (a的类型)(a % 10);
- 注意: 扩展赋值运算符隐含了强制类型转换
a += 10; 相当于 a = (a的类型)(a + 10);
6.关系运算符的基本用法和注意事项
- 关系运算符
==
: 相等!=
: 不等>
: 大于>=
: 大于等于<
: 小于<=
: 小于等于
- 关系运算符的结果是:
- boolean类型的值
- 注意区分
==
和=
, 别写错
7.逻辑运算符
- 比较两边的条件
&
: 与, 并且. 两边同时成立则true, 只要有一边不成立(false), 就为false|
: 或, 或者. 两边只要有一边成立则true, 两边都是false则false^
: 异或. 两边相同false, 两边不同true- 男:true, 女:false, 男女(或女男)才是真爱, 所以是true, 男男或女女都是false
!
: 非, 取相反的结果, 只和一边有关
8.逻辑运算符&&和&的区别
&
: 与. 两边同时为true则为true, 否则为false|
: 或. 两边有任意一个true则为true, 否则为false&&
: 逻辑与(短路与). 只要左边是false, 则不判断右边, 直接false||
: 逻辑或(短路或). 只要左边是true, 则不判断右边, 直接true
9. 三元运算符的基本使用
- 三元运算符的格式:
(关系表达式)? 表达式1 : 表达式2;
- 三元运算符的执行流程:
- 先计算关系表达式的布尔值
- 如果是true, 则表达式1是结果; 如果是false, 则表达式2是结果