1.算术运算符
自增自减运算符(++ --):
1.前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。
2.后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算。
public class Demo{
public static void main(String[] args){
int num1=10;
int num2=10;
System.out.println("前缀自增运算时num1的值为:"+(++num1));
System.out.println("后缀自增运算时num2的值为:"+(num2++));
System.out.println("num2的值:"+num2);
}
}
运算结果:
前缀自增运算时num1的值为:11
后缀自增运算时num2的值为:10
num2的值:11
2.关系运算符
3.位运算符
位运算符应用于short,int,float,char,byte类型。
位运算符操作时作用于二进制数的所有位上,所以在进行位运算时需要先将数值转换为二进制数在进行操作;
例如:A = 49,B = 79 。将其转换为二进制格式:
A = 00 1100 01
B = 01 0011 11
可将1看作真,0看作假
A & B:(相对应位全1为1;即全真为真,否则为假)
00 0000 01
A | B:(相对应位只要有1就为1;即全假为假,否则为真)
01 1111 11
A ^ B: (相对应位置相同结果为0,否则为1)
01 1111 10
~ A:(按位取反,0变1,1变0)
11 0011 10
A << 2: (左操作数按位左移左操作数指定的位数,即扩大2的2次方倍)
00 1100 01 ————> 11 0001 00
A >> 2: (右操作数按位右移右操作数指定的位数,即缩小2的2次方倍)
00 1100 01 ————> 00 0011
A>>> 2: (按位右移补零)
00 1100 01 ————> 00 0011 00
4.逻辑运算符
逻辑运算符中的短路现象:
我们定义两个变量 num1,num2 并为其赋值为10
执行如下代码。
public class Demo{
public static void main(String[] args){
int num1= 10 ;
int num2= 10 ;
if(num1 < 9 && (++num1) > 0){
}
if(num2 < 9 & (++num2) > 0){
}
System.out.println(num1);
System.out.println(num2);
}
}
运行结果:
10
11
逻辑中的&&运算存在短路现象,当第一个条件不满足时,不会执行&&运算后面的条件。也就是将&&后面的条件短路。
&运算不存在短路现象,即使第一个条件不满足,第二个条件照样执行。
5.赋值运算符
6.三目运算符
语句结构: (表达式)?为真时的结果:不为真时的结果
执行下列代码:
public class Demo{
public static void main(String[] args){
int num1= 10 ;
int num2= 20 ;
System.out.println("10和20之间最大的值为:"+(num1 > num2 ? num1 : num2));
}
}
运行结果:
10和20之间最大的值为:20