本文章基于b站:BV1RK4y1g7A5(换了一个更完整的) 赵珊珊老师的java课程的学习加以个人理解做出的学习笔记整理。(p45-p56)
目录
算术运算符
/和%
+
赋值运算符
=
//任意给出两个数,交换两个数并输出:
//1.给出两个数
int num1=10;
int num2=20;
//2.输出交换前的两个数:
System.out.println("交换前:"+num1+"\t"+num2);
//3.交换,引入一个中间变量
int t;
t = num1;
num1 = num2;
num2 = t;
//4.输出交换后的两个数:
System.out.println("交换后:"+num1+"\t"+num2);
两个变量交换的四种方法(Java) - BradLee - 博客园 (cnblogs.com)
拓展赋值运算符 +=
面试题
【1】a+=b <=> a = a+b; 等效于a = b+a吗?
对于数据类型来说,没区别:a=10;b=20;
a=a+b=10+20=30;a=b+a=20+10=30对String类型:a="x";b="y";
a=a+b="xy";a=b+a="yx";
【2】哪句代码出错?第4句
byte a = 10;
int b = 20;
a += b;
a = a + b; //更正为a = (byte)(a+b); 即使没有超出表数范围也要强制转换。
关系运算符
逻辑运算符
逻辑与:&;只要有一个操作数是false,那么结果一定是false
短路与:&&;效率高一些,只要第一个表达式是false,那么第二个表达式就不用计算,结果一定是false
逻辑或:|;只要有一个操作数是true,那么结果一定是true
短路或:||;效率高一些,只要第一个表达式是true,那么第二个表达式就不用计算,结果一定是true
逻辑非:!;相反结果
逻辑异或:^;两个操作数相同,结果为false(0);不相同,结果为true(1)
条件运算符
【1】条件运算符:又称:三元运算符/三目运算符
【2】格式:a?b:c
其中a是一个布尔类型的表达式,返回结果要么是true要么false,通过a的结果决定最终表达式的结果:如果a的结果是true,那么表达式最终结果为b
如果a的结果是false,那么表达式最终结果为c【3】可以代替if-else
位运算符
位运算符:&,|,^,~,>>,<<,>>>如何区分逻辑运算符和位运算符:
逻辑运算符:左右连接的是布尔类型的操作数位运算符:左右连接的是具体的数值
运算符的优先级