11-运算符

运算符

  • Java 语言支持如下运算符:

    • 算术运算符:+, -, *, /, %, ++, --

    • 赋值运算符:=

     
    复制代码
     1 package operator;
     2  3  public class Demo01 {
     4      public static void main(String[] args) {
     5          // 二元运算符
     6          // ctrl +D:复制当前行到下一行
     7          int a = 10;
     8          int b = 20;
     9          int c = 25;
    10          int d = 25;
    11 12          System.out.println(a+b);
    13          System.out.println(a-b);
    14          System.out.println(a*b);
    15          System.out.println(a/(double)b);//不转换的话会得出0
    16 17 18      }
    19  }
    复制代码

     

    ===========================我是分割线君==============================================================

     
    复制代码
     1 package operator;
     2  3  public class Demo02 {
     4      public static void main(String[] args) {
     5          long a = 123123123123L;
     6          int b = 123;
     7          short c = 10;
     8          byte d = 8;
     9 10          System.out.println(a+b+c+d);//long
    11          System.out.println(b+c+d);// int
    12          System.out.println((c+d));// int
    13      }
    14  }
    复制代码

     

    ===========================我是分割线君==============================================================

     
    复制代码
     1 package operator;
     2  3  public class Demo04 {
     4      public static void main(String[] args) {
     5          //  ++:自增  --:自减    为一元运算符
     6          int a = 3;// a的值会通过自增或者自减而变化
     7  8          int b = a++;// 执行完这行代码后, 先给b赋值, 再自增
     9          // a++: a = a+1;
    10          System.out.println(a);
    11          // ++a: a = a+1;
    12          int c = ++a;// 执行完这行代码前, 先自增, 再给b赋值
    13 14          System.out.println(a);
    15          System.out.println(b);
    16          System.out.println(c);
    17 18          //幂运算 2^3  即2*2*2 = 8 在java里面不可以这样子写 ,很多运算,我们会使用一些工具来操作
    19          double pow = Math.pow(3,2);//2^3
    20          System.out.println(pow);
    21      }
    22  }
    复制代码

     

     

    • 关系运算符:>, <, >=, <=, ==, != instanceof

    • 复制代码
       1 package xiaoka.operator;
       2 
       3 public class Demo03 {
       4     public static void main(String[] args) {
       5         // 关系运算符返回的结果: 正确,错误    布尔值来表示
       6         //之后会大量跟if一起使用
       7 
       8         int a = 10;
       9         int b = 20;
      10         int c = 21;
      11 
      12         System.out.println(c%a);//  c / a   21 / 10 = 1 (取余)
      13 
      14         System.out.println(a>b);
      15         System.out.println(a<b);
      16         System.out.println(a==b);
      17         System.out.println(a!=b);
      18     }
      19 }
      复制代码

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

     
    复制代码
    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));// 逻辑或运算: 两个变量有一个为真,结果就为真
             System.out.println("!(a && b):"+!(a&&b));// 如果是真,则变为假,如果是假则变为真
    //短路运算
             int c = 5;
             boolean d = (c<4)&&(c++<4);
             System.out.println(d);
             System.out.println(c);
         }
     }
    复制代码

     

     

    • 位运算符:&, |, ^, ~, >>, <<, >>>,(了解!!!)

     
    复制代码
     1 package operator;
     2  3  public class Demo06 {
     4      public static void main(String[] args) {
     5          /*
     6          A = 0011 1100
     7          B = 0000 1101
     8          ---------------------
     9          A&B = 0000 1100
    10          A|B = 0011 1101
    11          A^B = 0011 0001
    12          ~B = 1111 0010
    13 14          2*8 = 16     2*2*2*2
    15          效率极高!!!!
    16          <<: 左移   相当于  *2
    17          >>:右移   相当于  /2
    18          
    19          0000 0000       0
    20          0000 0001       1
    21          0000 0010       2
    22          0000 0011       3
    23          0000 0100       4
    24          0000 1000       8
    25          0001 0000       16
    26          */
    27 28          System.out.println(2<<3);// <<3表示乘以3个2
    29      }
    30  }
    复制代码

     

     

    • 条件运算符:?, :

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

     
    复制代码
     1 package operator;
     2  3  public class Demo07 {
     4      public static void main(String[] args) {
     5          int a = 10;
     6          int b = 20;
     7  8          a+=b;// a = a+b
     9          a-=b;// a = a-b
    10 11          System.out.println(a);
    12 13          //字符串连接符  +  , String
    14          System.out.println("" + a+b);// 字符串在前则会拼接
    15          System.out.println(a+b + "");// 字符串在后则会进行运算
    16      }
    17  }
    复制代码

     

    ===========================我是分割线君==============================================================

     
    复制代码
     1 package operator;
     2  //  三元运算符
     3  public class  {
     4      public static void main(String[] args) {
     5          // x ? y : z
     6          //如果x==true, 则结果为y, 否则结果为z
     7  8          int score = 80;
     9          String type = score < 60 ? "不及格" : "及格";
    10          //  if
    11          System.out.println(type);
    12 13      }
    14  }
    复制代码

     

  • Java里运算符的优先级规则:

    • 算术运算符:正号+、负号- > 乘号*、除号/、取余数符号% > 加号+、减号-

    • 关系运算符:低于算术运算符,即先进行加减乘除,接下来才会进行大于、等于和小于的运算

    • 逻辑运算符:与算术运算符没有可比性。具体顺序为:

      • 逻辑非运算!> 关系运算符(含等号、不等号) > 其他逻辑运算符(含与符号&、或符号|、亦或符号^)

posted @   小carlos  阅读(91)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示