一、运算符
1)算数运算符:+,-,*,/,%,++,--
2)逻辑运算符:&&,&,||,|,!,^
3)赋值运算符:=
4)关系运算符:>,<,>=,<=,==,!=,
5)位运算符:&,|,^,~,<<,>>,>>>
6)条件运算符 ? :
7)扩展赋值运算符:+=,-=,*=,/=,%=
二、运算符介绍
1、算法运算符
public class Hello {
public static void main(String[] args) {
int a=10;
int b=20;
//通过加法运算符,对变量a和变量b进行相加
System.out.println(a+b);//所得结果为 30
}
}
2)-:减法运算符
public class Hello {
public static void main(String[] args) {
int a=10;
int b=20;
//通过减法运算符,对变量a和变量b进行相减
System.out.println(a-b);//所得结果为 -10
}
}
3)*:乘法运算符
public class Hello {
public static void main(String[] args) {
int a=10;
int b=20;
//通过乘法运算符,对变量a和变量b进行相乘
System.out.println(a*b);//所得结果为 200
}
}
4)/:除法运算符
public class Hello {
public static void main(String[] args) {
int a=10;
double b=2;
//通过除法运算符,对变量a和变量b进行相除
//如果两个变量为整数类型,所得结果为整数,如果其中一个变量为浮点数,
//所得结果为浮点数,除数不可为0,否则会引发异常。
System.out.println(a/b);//所得结果为5.0 都是整数类型所得结果为5
}
}
5)%:求余运算符
public class Hello {
public static void main(String[] args) {
int a=101;
int b=20;
int age=a%b;
//通过求余运算符,对变量a和变量b进行相除余
System.out.println(age);//所得结果为1
}
}
6)++:自加运算符
public class Hello {
public static void main(String[] args) {
int a=10;
int b=++a+1;//先增加在执行
System.out.println(b);//结果为12
int d=10;
System.out.println(d);//结果为10
int c=d++ +1;//先执行在增加
System.out.println(c);//结果为11
}
}
7)--:自减运算符
public class Hello {
public static void main(String[] args) {
int a=10;
int b=--a-1;//先自减在执行
System.out.println(b);//结果为8
int d=10;
System.out.println(d);//结果为10
int c=d-- -1;//先执行在自减
System.out.println(c);//结果为9
}
}
2、逻辑运算符
短路运算:两个操作数进行操作的时候,int a=3(a=(a<2)&&a++<2)如果前面的如果错,后面的就不执行了
&&:与,操作的两个操作数都为true,则返回true,否则返回false
&:与&&所得结果相同,不短路
||:或,操作的两个操作数,其中一个为true,则返回true,负责为false
|:与||所得结果相同,不短路
!:非,如果所的为true,则返回false,如果为false,则返回为true。取反
^:两个操作数不同为true,相同则为flase
3、赋值运算符
public class Hello {
public static void main(String[] args) {
//=:赋值运算符
int a=10;//通过=,吧10赋值给a
}
}
4、关系运算符
public class Hello {
public static void main(String[] args) {
//关系运算符:>(大于),<(小于),>=(大于等于),<=(小于等于),
//==(等于),!=(不等于)
int a=10;
int b=15;
System.out.println(a!=b);//返回为true,a不等于b
}
}
5、位运算符
先吧数据转换为二进制
&,|,^当俩边是数据就做位运算,俩边是布尔值就做逻辑运算
%:按“与”,两个操作数进行比较,相同返回1,不相同返回0
|:按“或”,两个操作数进行比较,其中一个相同就返回1
^:按“非”,两个操作数进行比较,取相反的数
~:按“异或”,两个操作数相同返回0,不相同返回1
<<:左移运算符
>>:右移运算符
>>>:无符号右运算符
6、条件运算符
public class Hello {
public static void main(String[] args) {
//条件运算符 ? :
//进行表达式比较,按照条件,输出满足条件的双引号内的内容
String str = 9 < 4 ? "9大于4" : "9不大于4";
System.out.println(str); //输出9不大于4
}
}
7、扩展赋值运算符
public class Hello {
public static void main(String[] args) {
//扩展赋值运算符:+=,-=,*=,/=,%=
int a=10;
int b=20;
//a+=b:等于a=a+b
//a+=b;
//a-=b:等于a=a-b
//a-=b;
//a*=b:等于a=a*b
//a*=b;
//a/=b:等于a=/+b
//a/=b;
//a%=b:等于a=a%b
//a%=b;
a%=b;
System.out.println(a);
}
}
三、运算符优先级
Java表达式中存在多个运算符,运算符之间也存在优先级关系,下面这个图中,1号内是优先级最高,14号是优先级最低的。运算符用顿号隔开。
优先级 | 运算符 | 结合性 |
1 | ()、[]、. | 从左到右 |
2 | !、+(正)、-(负)、~、++、-- | 从右到左 |
3 | *、/ | 从左到右 |
4 | +(加)、-(减) | 从左到右 |
5 | <<、>>、>>> | 从左到右 |
6 | <、<=、>、>= | 从左到右 |
7 | ==、!= | 从左到右 |
8 | & | 从左到右 |
9 | ^ | 从左到右 |
10 | | | 从左到右 |
11 | && | 从左到右 |
12 | || | 从左到右 |
13 | ?: | 从右到左 |
14 | =、+=、-=、*=、/=、%=、&=、|=、^=、~=、<<=、>>=、>>>= | 从右到左 |