1 优先级:由高到低
( )
! ++ --
算术运算符:*/%+-
关系运算符:> >= < <= == !=
逻辑运算符:&& ||
条件运算符:()?:
赋值运算符:*= /= += -= =
2 运算符分类
(1)赋值运算符(5种):+= -= *= /= =
(2)算术运算符(7种):+ - * / % ++ --
① +的两种用法:
-
两侧都是基本数据类型,则做算术加法
-
有一侧是Srting型,则从String开始以后都做连接
String name = "张三";
int age = 20;
System.out.println("姓名:" + name );//姓名:张三
System.out.println(age+age+"姓名:" + name +age+age);//40姓名:张三2020
② /
int a=4;
int b=2;
double c=6;
System.out.println(a/b);//2,两侧是相同类型,取相同类型
System.out.println(c/b);//3.0,两侧是不同类型,则取大类型
③ %
余数正负只与被除数正负有关
-
-5/2=-2......-1
-
5/2=2......1
(3)关系运算符(6种):> >= < <= != ==
注意:String型进行比较需要使用定义好的方法
-
绝对等:区分大小写equals()
-
相对等:不区分大小写equalsIgnoreCase()
String a = "abc"; System.out.println(a.equals("Abc"));//false
System.out.println(a.equalsIgnoreCase("AbC"));//true
(4)逻辑运算符(3种):! || &&
拓展:&(按位与) |(按位或)
注意:前一个表达式能判断整体结果时,&&只运行前一个,后面的不运行,而&所有的都要运行(效率低)
(5)条件运算符(三元运算符):表达式结果为true执行a,结果为false执行b
(任意关系/逻辑表达式)?结果a:结果b
int a = 9; System.out.println(a % 2 == 1 ? "9是奇数" : "9是偶数");//9是奇数