算术运算符:+-*/ %
关系运算符:结果是boolean类型值;< <= > >= == !=
逻辑运算符:结果是boolean类型值;
& 与(同时为真,返回true)
| 或(只要有一个是true,就返回true)
! 非(取反,false就是true,这是一个单目运算符)
^ 异或(两边的算子只要不一样,返回true)
&& 短路与(返回结果与&一样,只是&&第一个算子能判断结果时候,第二个算子不在运行计算)
|| 短路或(返回结果与|一样,只是||第一个算子能判断结果时候,第二个算子不在运行计算)
短路与,短路或:更常用,更智能,更快
赋值运算符:先执行等号右边的表达式,将执行的结果赋值给左边的比变量
基本的赋值运算符
=
扩展的赋值运算符
+= 追加/累加;byte i=5; i+=5;等同于byte i=5;i=(byte)(i+5);
-= 类似同上逻辑
*= 类似同上逻辑
/= 类似同上逻辑
%= 类似同上逻辑
byte b =10;
b=b+5;//编译报错,编译器只检查语法,不运行程序,编译器发现b+5的类型是int类型,b变量的类型数byte类型,大容量向小容量转换需要加强制类型转换符
纠正
b=(byte)(b+5);
b+=5;
字符串连接运算符
1、java中的+有两个作用
加法运算,求和
字符串的连接运算
2、当“+”运算符两边的数据都是数字的话,一定是进行加法运算
3、当“+”运算符两边的数据只有一个数据是字符串,一定是进行字符串连接运算,并且,连接运算之后的结果还是一个字符串类型
4、在一个表达式当中可以出现多个“+”,在没有添加小括号的情况下,遵循自左向右顺序依次运算
a=10;
b=20;
System.out.println(10+20);//数字30
System.out.println(10+20+30);//数字60
System.out.println(10+20+"30");//字符串"3030"
System.out.println(10+(20+"30"));//字符串"102030"
//动态方式输出显示字符串:"10+20=30"
System.out.println("10+20="+a+b);//"10+20=1020"
System.out.println("10+20="+(a+b));//"10+20=30"
System.out.println(a"+20="+(a+b));//"10+20=30"
System.out.println(a+"+"+b+"="+(a+b));//"10+20=30",最终结果
String是引用数据类型,s是变量名,“abc”是String类型的字面值
String s ="abc";
String username ="zhangsan";
三目运算符/三元运算符/条件运算符
1、语法规则
布尔表达式?表达式1:表达式2
2、三元运算符的执行原理?
当布尔表达式的结果是true的时候,选择表达式1座位整个表达式的执行结果
当布尔表达式的结果是false的时候,选择表达式2作为整个表达式的执行结果
boolean sex=false;
char q=sex ? '男' : '女';
System.out.println(q);
char q2=sex ? "男" : '女';//编译报错,语法不兼容,可能是char类型,也可能是String 类型,但是只赋值给了char类型变量,所以编译报错;
System.out.println(q2);
System.out.println(10);//10
System.out.println("1");//1
System.out.println('2');//2
System.out.println(char q2=sex ? "男" : '女');//女,println里面可以放任何类型的内容,所以就可以执行了;