1. 运算符和表达式
运算符
就是对常量或者变量进行操作的符号。
如:+ - * /
表达式
用运算符把常量或者变量连接起来的,符合Java语法的式子就是表达式。
如:a + b
其中,+
是算术运算符的一种,所以这个表达式也称为算术表达式。
2. 算术运算符
+、-、*、/、%
运算特点:
+ - * :跟小学数学中的加减乘一模一样,没有任何区别。
/ :
1. 整数相除结果只能得到整数(小数取整数部分),如果结果想要是小数,必须要有小数参数。
2. 小数直接参与运算,得到的结果有可能是不精确的。
案例:
System.out.println(10 / 3);//3
System.out.println(10.0 / 3)//3.3333333333333335
% :取模、取余,也是进行除法运算,只不过获取的是余数。
案例:
System.out.println(10 % 2);//0
System.out.println(10 % 3);//1
3. 隐式转换
概念
也叫自动类型转换。就是把一个取值范围小的数据或者变量,赋值给另一个取值范围大的变量时,不需要我们额外写代码单独实现,程序自动帮我们完成的功能。
转换规则
- 取值范围小的和取值范围大的进行运算,先把小的转换为大的,再进行运算。
byte
、short
、char
三种类型的数据在运算时,都会直接先转换为int,然后再进行运算。
取值范围大小关系:byte < short < int < long < float < double
4. 强制转换
概念
如果要把一个取值范围大的数据或者变量赋值给另一个取值范围小的变量,Java中是不允许直接操作的,如果一定要这样干,就需要加入强制转换。
书写格式
目标数据类型 变量名 = (目标数据类型) 被强制转换的数据或变量名
注意:强制转换可能会导致数据的精度丢失。
5. 字符串的+操作
规则
- 当+操作中出现字符串时,
+
就是字符串的连接符,会将前后的数据进行拼接,并产生一个新的字符串。 - 当连续进行+操作时,执行顺序时从左到右逐个执行。
案例
案例1:
1 + "abc" + 1
结果:"1abc1"
案例2:
1 + 2 + "abc" + 2 +1
结果:"3abc21"
6. 字符的+操作
规则
当+操作中出现了字符,会转换为计算机内置的ASCII
码表中对应的数字,然后再进行运算。
案例
char c = 'a';
int result = c + 0;
System.out.println(result);//97
7. 自增/自减运算符
++ 自增运算符,就是把变量里面的值+1
-- 自减运算符,就是把变量里面的值-1
自增/自减运算符可以放在变量的前面和后面,如:++a
,a++
8. 赋值运算符
= 赋值运算符
运算过程:就是把等号右边的结果赋值给左边的变量。
注意:
在赋值运算中,当自增/自减运算符出现在变量前时,先对变量进行自增/自减运算,再赋值。
在赋值运算中,当自增/自减运算符出现在变量后时,先赋值,再对变量进行自增/自减运算。
案例:
int a = 10; int b = ++a; System.out.println(a);//11 System.out.println(b);//11 int c = 10; int d = c++; System.out.println(c);//11 System.out.println(d);//10 //自减运算符同理
9. 扩展赋值运算符
+=、-=、*=、/=、%=
规则
把左边跟右边进行运算,最终结果赋值给左边,对右边无任何影响。
案例
int a = 10;
int b = 20;
a += b;//相当于a = a + b
System.out.println(a);//30
System.out.println(b);//20
注意:
扩展赋值运算符中隐层还包含了一个强制转换。
以
+=
为例:a += b
实际上相当于a = (byte)(a + b)
。
10. 关系运算符
又称为比较运算符。
符号 | 解释 |
---|---|
== | 就是判断左边跟右边是否相等,如果成立就是true,如果不成立就是false |
!= | 就是判断左边跟右边是否不相等,如果成立就是true,如果不成立就是false |
> | 就是判断左边是否大于右边,如果成立就是true,如果不成立就是false |
>= | 就是判断左边是否大于等于右边,如果成立就是true,如果不成立就是false |
< | 就是判断左边是否小于右边,如果成立就是true,如果不成立就是false |
<= | 就是判断左边是否小于等于右边,如果成立就是true,如果不成立就是false |
注意:
- 关系运算符的运算结果一定是布尔类型(boolean)。
==
是判断左右两边是否相等的关系运算符,而=
是赋值运算符
11. 逻辑运算符
&:逻辑与(而且)
两边都为真,结果才是真,只要有一个为假,结果就是假。
|:逻辑或(或者)
两边都为假,结果才是假,只要有一边为真,结果就是真。
^:异或
如果两边相同,结果为false
;如果两边不相同,结果为true
。
!:取反
false
取反就是true
,true
取反就是false
。
注意:取反最多只用一个。
12. 短路逻辑运算符
&&
运算规则与&
是一致的,具有短路效果。
||
运算规则与|
是一致的,具有短路效果。
短路效果
当左边不能确定整个表达式的结果时,右边才会执行。反之,当左边能确定整个表达式的结果时,右边不会执行。这样做可以提高代码的运行效率。
注意:
&&
和&
、||
和|
的运行结果是一致的,但是短路逻辑运算符可以提高程序的运行效率,所以更推荐使用短路逻辑运算符。
13. 三元运算符
格式
关系表达式 ? 表达式1 : 表达式2;
运算规则
- 计算关系表达式的值
- 如果关系表达式的值为
true
,执行表达式1 - 如果关系表达式的值为
false
,执行表达式2
标签:运算符,Java,运算,System,笔记,学习,println,表达式,赋值 From: https://www.cnblogs.com/kuaicode/p/16995417.html注意:三元运算符的最终结果一定要被使用,要么赋值给一个变量,要么打印输出。