JavaSE基础语法 - 运算符
JavaSE基础语法 - 运算符
记录自己的学习之路,2025年7月23日,周三,早,天气阴雨。运算符学习。
Java 语言支持如下运算符:
- 算术运算符: +,-,*,/,%,++,--
- 赋值运算符 =
- 关系运算符: >,<,>=,<=,==,!= ,instanceof
- 逻辑运算符: &&,||,!
- 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
- 条件运算符 ?:
- 扩展赋值运算符:+=,-=,*=,/=
自增(++)自减(--)运算符
b = a++ 先赋值给b,再自增
b = ++a 先自增,,再赋值给b
public static void main(String[] args) {
int a = 3;
int b = a++; //执行完后,b=3。先给b赋值,再自增。
int c = ++a; //执行完后,c=5。先自增,再给b赋值
}
乘幂运算
用自带的方法pow
public static void main(String[] args) {
int a = 3^2; //报错,java中不能这么处理, ^是异或符号。
double b = Math.pow(3, 2);
}
位运算符
A = 0011 1100
B = 0000 1101
-----------------
A&b = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011
| 操作符 | 描述 | 例子 |
|---|---|---|
| << | 按位左移运算符。左操作数按位左移右操作数指定的位数。 | A << 2 得到240,即1111 0000 |
| >> | 按位右移运算符。左操作数按位右移右操作数指定的位数。 | A >> 2 得到15,即0000 1111 |
| >>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 | A >>> 2 得到15,即0000 1111 |
>>和>>>的区别
>>:带符号右移(Signed Right Shift)
带符号右移,保留符号位
int a = -8; // 二进制:11111111111111111111111111111000
int b = a >> 1; // 结果:-4(11111111111111111111111111111100)
>>>:无符号右移(Unsigned Right Shift)
无符号右移,高位补 0
int a = -8; // 二进制:11111111111111111111111111111000
int c = a >>> 1; // 结果:2147483644(01111111111111111111111111111100)
【常见面试题:int a=2*8怎样运算效率最快?】
public static void main(String[] args) {
System.out.println(2 << 3);
}
- 将十进制数用二进制表示:
1=0000 0001
2=0000 0010
3=0000 0011
4=0000 0100
注意2和4的二进制写法,相当于整个代码向左位移了1位。那么同理继续左移:
8=0000 1000
16=0001 0000
即16=2<<3。 >>右移相当于除以二,<<左移相当于乘以二。
扩展运算符
三目条件运算符
语法格式
x ? y : z
示例
public static void main(String[] args) {
int score = 80;
String type = score < 60 ? "不及格" : "及格";
System.out.println("type= " + type);
}

浙公网安备 33010602011771号