Day12-20251206

快捷键(IDEA)

  • Shift+Enter:在任意位置切换至下一行

  • Shift+Ctrl+Enter:自动补全

复习自增自减

随堂代码:

package operator;

public class Demo04 {
    public static void main(String[] args) {
        //++   --   自增,自减   一元运算符
        int a = 3;

        int b = a++;//执行完这行代码后,先给b赋值,在自增
        //a++   a = a + 1;,这里少写一行代码就是a = a + 1;在执行int b = a++之前

        System.out.println(a);

        //==a   a = a + 1;这里少写一行代码就是a = a + 1;在执行int c = ++a之前

        int c = ++a;//执行完这行代码前,先自增,在给c赋值

        System.out.println(a);
        System.out.println(a);
        System.out.println(b);
        System.out.println(b);
        System.out.println(c);
        System.out.println(c);

        //幂运算2^3   2*2*2 = 8   java中没有这种写法
        //很多运算,我们会使用一些工具类来操作
        double pow = Math.pow(2, 3);//Math类提供了很多工程科学计算需要的一些方法和常数
        System.out.println(pow);
    }
}

输出:

4
5
5
3
3
5
5
8.0

进程已结束,退出代码为 0

注意:

  • a++,先把a赋值给b,然后再执行a+1的操作。所以会在这一步后输出a=4。b=3。

  • ++a,先执行a+1的操作,然后再把a赋值给c。所以会在这一步后输出a=5。c=5

逻辑运算:&&(与)、||(或)、!(非)

package operator;

//逻辑运算符
public class Demo05 {
    public static void main(String[] args) {
        //与(and)&&   或(or)||   非(取反)!
        boolean a = true;
        boolean b = false;

        System.out.println("a && b:"+(a&&b));//逻辑与运算:两个变量都为真,结果才为true
        System.out.println("a || b:"+(a||b));//逻辑与运算:两个变量有一个为真,结果才为true
        System.out.println("!(a &&b ):"+!(a&&b));//如果是真,则变为假,如果是假则变为真

        //短路运算
        // 与门中都为真才输出true,第一个为lalse,则直接输出false,不会进行后续操作
        int c = 5;
        boolean d = (c < 4) && (c++ < 10);
        System.out.println(d);
        System.out.println(c);

    }
}

位运算:&、|、^、~、>>、<<、>>>

package operator;
//位运算符
public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101
        ------------------------------
        A&B = 0000 1100
        A|B = 0011 1101
        A^B = 0011 0001
        ~B = 1111 0010

        2*8 = 16   2*2*2*2
        效率极高
        (左移)<<   *2
        (右移)>>   /2

        0000 0000   0
        0000 0001   1
        0000 0010   2
        0000 0011   3
        0000 0100   4
        0001 0000   16
         */
        //A与B,二进制比较时,两个位上都为1,则为1.否则为0
        //A或B,二进制比较时,两个位上都为0,则为0.否则为1
        //异或运算,二进制比较时,两个位上相同,则为0.否则为1
        //~取反,每一位上取相反的

        System.out.println(2<<3);

    }
}

<< *2,>> /2

扩展赋值运算符:+=、-+、*=、/=

a+=b:a=a+b

a-=b:a=a-b

package operator;
//扩展赋值运算符:+=,-=,*=,/=
public class Demo07 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        a+=b;//a = a+b
        a-=b;//a = a-b

        System.out.println(a);

        //字符串连接符   +   ,+两侧出现字符串类型(String)都转换为String在进行链接
        System.out.println(a+b);
        System.out.println(""+a+b);//字符串在前则相连

        System.out.println(a+b+"");//字符串在后则先运算在拼接

    }
}

条件运算符?:

优先级

()最高优先级

Java 运算符的优先级从高到低排序如下(同一行优先级相同,按结合性计算):

  1. 括号: () (最高优先级,强制改变运算顺序)
  2. 单目运算符: ++ (自增)、 -- (自减)、 ! (非)、 ~ (按位非)、 + (正号)、 - (负号)、 (类型) (强制类型转换)、 new (创建对象)
  3. 算术运算符: * (乘)、 / (除)、 % (取余)
  4. 算术运算符: + (加)、 - (减)
  5. 移位运算符: << (左移)、 >> (右移,带符号)、 >>> (无符号右移)
  6. 关系运算符: > 、 < 、 >= 、 <=
  7. 关系运算符: == (等于)、 != (不等于)
  8. 按位与: &
  9. 按位异或: ^
  10. 按位或: |
  11. 逻辑与: &&
  12. 逻辑或: ||
  13. 三目运算符: 条件 ? 表达式1 : 表达式2
  14. 赋值运算符: = 、 += 、 -= 、 *= 、 /= 、 %= 、 <<= 、 >>= 、 >>>= 、 &= 、 ^= 、 |= (最低优先级)

示例:

int a = 2 + 3 * 4; // 先算 3*4=12,再算 2+12=14 → a=14
int b = (2 + 3) * 4; // 括号优先,先算 2+3=5,再算 5*4=20 → b=20
int c = 10 > 5 && 3 < 2; // 先算关系运算,再算逻辑与 → false

优先级不确定时,建议用括号明确顺序,代码更易读~

本文介绍了Java中的运算符使用和优先级规则。主要内容包括:1) IDEA快捷键Shift+Enter换行和Shift+Ctrl+Enter自动补全;2) 自增自减运算符++/--的前置和后置区别;3) 逻辑运算符&&、||、!的用法;4) 位运算符&、|、^、~、<<、>>的二进制运算;5) 扩展赋值运算符+=、-=等;6) 条件运算符?:的使用;7) 运算符优先级从高到低排序,建议用括号明确运算顺序。文章通过代码示例演示了各种运算符的具体应用场景和注意事项。

posted @ 2025-12-06 18:08  贾光清  阅读(3)  评论(0)    收藏  举报