Java 学习笔记—Java基本语法(二) 运算符

运算符

算数运算符

运算符运算
+
-
+
-
*
/
%取余运算
++自增1 自增1不会改变本身变量的数据类型 (前)++:先自增1,然后再运算 (后)++:先运算,后自增1
- -自减1 自减1不会改变本身变量的数据类型 (前)–:先自减1,然后再运算 (后)–:先运算,后自减1

赋值运算符

=

int i1 = 10;
int j1 = 10;

int i2,j2;
//连续赋值
i2 = j2 = 10;

int i3 = 10,j3 = 20;

不会改变本身的数据类型
+=

int num1 = 10;
num1 += 2;//num1 = num1 + 2
System.out.printlin(num1);//12

-=
*=
/=
%=

int num2 = 12;
num2 %= 5;//num1 = num1 % 5
System.out.printlin(num2);//2

比较运算符

比较运算符的结果是boolean类型

运算符运算
==相等于
!=不等于
<小于
>大于
<=小于等于
>=大于等于
instanceof检查是否是类的对象
int i = 10;
int j = 20;

System.out.println(i == j);//false
System.out.println(i = j);//20

逻辑运算符

说明:
1、逻辑运算符操作的都是boolean类型的变量

& 逻辑与
| 逻辑或
! 逻辑非
&& 短路与
|| 短路或
^ 逻辑异或

aba&ba&&ba|ba||b!aa^b
truetruetruetruetruetruefalsefalse
truefalsefalsefalsetruetruefalsetrue
falsetruefalsefalsetruetruetruetrue
falsefalsefalsefalsefalsefalsetruefalse

区分& 与 &&
相同点1:& 与&& 的运算结果相同
相同点2:当符号左边是true时,二者都会执行符号左边的运算
不同点:当符号左边是false时,&继续执行符号右边的运算,&&不再执行符号右边的运算

区分| 与 ||
相同点1:|与|| 的运算结果相同
相同点2:当符号左边是false时,二者都会执行符号左边的运算
不同点:当符号左边是true时,|继续执行符号右边的运算,||不再执行符号右边的运算

位运算符

结论:
1、位运算符操作的都是整型的数据
2、<<:在一定范围内,每向左移一位,相当于*2
>>:在一定范围内,每向右移一位,相当于 /2

面试题:最高效的计算2 * 8 ? 2<<3 或 8<<1

运算符运算范例
<<左移左移n位就是在原来的数字上乘2的n次方
>>右移最高位根据原来的最高位来补,不是直接补0
>>>无符号右移被以为二进制最高位无论是0或者1,都用0补
&与运算二进制位进行&运算
|或运算二进制位进行|运算
^异或运算二进制位进行^运算
//练习:交换两个变量的值
int num1 = 10;
int num2 = 20;

//方式一:定义临时变量的方式
//推荐的方式
int temp = num1;
num1 = num2;
num2 = temp;

//方式二:好处:不用定义临时变量
//弊端:相加操作可能超出存储范围 ;有局限性:只能适用于数值类型
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;

//方式3:使用位运算符
//有局限性:只能适用于数值类型
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;

三元运算符

1、结构:(条件表达式)?表达式1:表达式2
2、说明
1)条件表达式的结果为boolean类型
2)根据条件表达式真或假,决定执行表达式1,还是表达式2
如果表达式为true,则执行表达式1
如果表达式为false,则执行表达式2
3) 表达式1和表达式2的要求是一致的
4)三元运算符可以嵌套使用

3、凡是可以使用三元运算符的地方,都可以改写成if else

4、如果程序既可以使用三元运算符,又可以使用if-else,那么有限选择三元运算符。

//获取两个正数的较大值
int m = 12;
int n = 5;
int max = (m > n)? m : n;

double num = (m > n)? 2 : 1.0;

//(m > n)? 2 :"n大" ;//编译错误

String maxStr = (m > n )?"m大":((m == n)?"m和n相等": "n大");

运算符的优先级

注意用()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值