算术运算符:+-*/ %

关系运算符:结果是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里面可以放任何类型的内容,所以就可以执行了;