Java笔记Day4(运算符)
程序员文章站
2022-07-14 17:35:58
...
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较。
- 算数运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 位运算符
- 三元运算符
算术运算符
+
、-
、+
、-
、*
、/
、%
、(前)++
、(后)++
、(前)--
、(后)-- +
除号:/
取整运算
%
:取余运算
- 结果的符号与被模数的符号相同;
- 开发中,经常使用%来判断能否被除尽的情况。
(前)++
(前)--
:先运算后自增或自减(先用后加/减);
(后)++
(后)--
:先自增或自减再运算(先加/减后用)。
注:
自增1不会改变本身变量的数据类型。
赋值运算符
符号:=
扩展赋值运算符:+=
,-=
,*=
,%=
eg:
num +=2;//num = num + 2;
short s1 = 10;
//s1 = s1 + 2;//编译失败
s1 += 2;//结论:不会改变变量本身的数据类型
因此:
//开发中,如果希望变量实现+2的操作,有几种方法?(前提:int num = 10;)
//方式一:num = num + 2;
//方式二:num += 2; (推荐)
//开发中,如果希望变量实现+1的操作,有几种方法?(前提:int num = 10;)
//方式一:num = num + 1;
//方式二:num += 1;
//方式三:num++; (推荐)
比较运算符
说的都是==
、!=
、>
、<
、>=
、<=
、instanceof
结论:
- 比较运算符的结果是boolean类型;
- 区分
==
和=
。
逻辑运算符
&
、 &&
、|
、 ||
、!
、^
结论:
逻辑运算符操作的都是boolean类型的变量。
区分&
与 &&
相同点:
-
&
与&&
的运算结果相同; - 当符号左边是true时,二者都会执行符号右边的运算。
不同点:
- 当符号左边是false时,
&
继续执行符号右边的运算。&&
不再执行符号右边的运算; - 开发中,推荐使用
&&
。
区分:|
与 ||
相同点:
-
|
与||
的运算结果相同; - 当符号左边是false时,二者都会执行符号右边的运算。
不同点:
- 当符号左边是true时,
|
继续执行符号右边的运算,而||
不再执行符号右边的运算; - 开发中,推荐使用
||
。
位运算符(了解)
结论:
- 位运算符操作的都是整型的数据;
-
<<
:在一定范围内,每向左移1位,相当于*
2,>>
:在一定范围内,每向右移1位,相当于/
2。
面试题:
//最高效方式的计算2 * 8 ? 2 << 3 或 8 << 1
三元运算符
- 结构:(条件表达式)? 表达式1 : 表达式2
- 结论:
- 条件表达式的结果为boolean类型;
- 根据条件表达式真或假,决定执行表达式1,还是表达式2;
①如果表达式为true,则执行表达式1;
②如果表达式为false,则执行表达式2。 - 表达式1 和表达式2要求是一致的;
- 三元运算符可以嵌套使用。
-
凡是可以使用三元运算符的地方,都可以改写为if-else,反之,不成立。
-
如果程序既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符。原因:简洁、执行效率高。
eg:
//获取两个整数的较大值
int m = 12;
int n = 5;
int max = (m > n)? m : n;