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。
  • >>右移相当于除以二,<<左移相当于乘以二。

扩展运算符

image-20250723163054195

三目条件运算符

语法格式

x ? y : z

示例

public static void main(String[] args) {
    int score = 80;
    String type = score < 60 ? "不及格" : "及格";
    System.out.println("type= " + type);
}
posted @ 2025-07-23 16:43  点态  阅读(7)  评论(0)    收藏  举报