workplace-blog

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  30 随笔 :: 0 文章 :: 0 评论 :: 694 阅读

运算符

  • java支持如下运算符:

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

    • 赋值运算符:=

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

    • 逻辑运算符:&&,||,!

    • 位运算符:&,|,^,~,>>,<<,>>>

    • 条件运算符:?:

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

      public class Demo01 {
          public static void main(String[] args) {
              //二元运算(Ctrl+d:复制当前行到下一行)
              int a=10;
              int b=20;
              int c=30;
              int d=40;
              System.out.println(a+b);
              System.out.println(a-b);
              System.out.println(a*b);
              System.out.println(a/b);//输出为0,小数精度丢失
              System.out.println(a/(float)b);//输出为0.5
      
              long a1=123123123L;
              int b1=1234;
              short c1=12;
              byte d1=2;
              System.out.println(a1+b1+c1+d1);//输出为long类型(运算中最大类型)
              System.out.println(b1+c1+d1);//输出为int类型
              System.out.println(c1+d1);//输出为int类型(byte,short,char自动转换为int类型)
      
              //关系运算符,返回值为true,false,布尔型
              System.out.println(a==b);
              System.out.println(a>=b);
              System.out.println(a<=b);
              System.out.println(a!=b);
      
              //一元运算符,自增,自减
              //q++:使用之后加一,++q:使用之前加一
              int q=3;
              
              int w=q++;
              //q=q+1;
              //w=q++ :先把q的值赋给w,再对q加一
      
              //q=q+1
              int e=++q;
              //e=++q:先对q加一,再把q的值赋给e
              
              System.out.println(q);
              System.out.println(w);
              System.out.println(e);
      
              //幂运算,2^3,使用Math工具类实现
              double a2= Math.pow(2,3);
              System.out.println(a2);
      
              //逻辑运算符,与或非(短路)
              boolean a3=true;
              boolean b3=false;
              System.out.println(a3&&b3);//两个都为真才输出true
              System.out.println(a3||b3);//两个都为假才输出false
              System.out.println(!(a3));//取反
              
              //短路解释
              int c3=3;
              boolean d3=(c3<3)&&(c3++<5);//c3<3为假,则直接短路结束后面的自增语句
              System.out.println(d3);
              System.out.println(c3);//c3=3
              
              Demo01 demo01=new Demo01();//实例化一个对象
              demo01.Demo2();//使用对象调用方法
          }
          public void Demo2() {
                  //在计算机内部都是用0,1二进制表示数的,位运算即为数字的二进制表示在每一位上都进行与或运算
                  /*(0:false,1:true)
                  位运算符&,|,^,~,>>,<<
                  a=   0011 1100
                  b=   0000 1101
                  a&b= 0000 1100(有0即为0,全1才为1)
                  a|b= 0011 1101(有1即为1,全0才为0)
                  a^b= 0011 0001(异或:相同为0,不同为1)
                  ~a=  1100 0011(取反)
      
                  <<:数字的二进制表示中的1左移
                  2<<2=8: 2*2*2=8
                  2=0000 0010
                  8=0000 1000
                   */
                  System.out.println(2 << 2);//输出8
              //三元运算符?:
              //x?y:z(若x==true则返回y,否则返回z)
              int score=20;
              String type=score<60?"及格":"不及格";
              System.out.println(type);//输出不及格
              }
      }
      
  • 优先级(括号可改变优先级)

    优先级 运算符 结合性
    1 (),[],{} 从左向右
    2 !,+,-,~,++,-- 从右向左
    3 *,/,% 从左向右
    4 +,- 从左向右
    5 <<,>>,>>> 从左向右
    6 <,<=,>,>=,instanceof 从左向右
    7 ==,!= 从左向右
    8 & 从左向右
    9 ^ 从左向右
    10 | 从左向右
    11 && 从左向右
    12 || 从左向右
    13 ?: 从右向左
    14 =,+=,-=,/=(拓展赋值运算符) 从右向左
posted on   多巴胺LLL  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示