Java运算符号

Java运算符
    运算符用来指明对于操作数的运算方式
    
    按照操作数的数目进行分类
            单目        双目        三目        
        a(操作数)++(运算符)    a+b        (a>b)?x:y;
    按照运算符的功能进行分类
      算数运算
         + - * /      %(取余数   取模)
        int x = 5;
        x/2--->2
        x%2--->1
        ++(自增)  --(自减)
        int x = 1;
        x = x +1;将等号右边的值存在左边//x空间内的值  自己增加了一个
        x++;//x空间内的值自增一个                            
        ++x;//对于x的空间内的值来讲  都是一致   最终结果都自增一个     对x自己
        ------------------------------------------------------------------------------------------------------    
        int x = 1;
        int y = x++;//++符号在后    先赋值   后自增(计算机底层  先进行计算   后赋值)
            x++;//x = x + 1;//将x变量空间的内容先取出  常量取出1   进行计算    再次存回x空间
            x在想要做值交换的时候   会产生一个临时副本空间(备份)
            ++在变量的前面  先自增  后备份     ++在变量的后面   先备份    后自增
            会将副本空间内的值赋值给别人
        x==?2   y==?1
        int y = ++x;
        x==? 2 y==?2 
        ------------------------------------------------------------------------------------------------------
        int a = 1;
        for(int i = 1;i<=100;i++){//循环结构
                a = a++;
                }
        a = a ++;
        a ==?1
        ------------------------------------------------------------------------------------------------------
        int m =1;
        int n = 2;
        int sum = m++  +  ++n  -  n--  -  --m+n--  -  --m;
               1       +     3   -   3    -   1    +2    -    0
        m==? 0  n==? 1  sum==?2
        
      赋值运算
         =  赋值符号   将=右边的内容(值 引用)存入等号左边的变量空间内
         +=     -=    *=    /=     %=      复合型

        int x= 1;
        x+=10//相当于x=x+10//x++;x+=10;
        x++;//x自增一个    需求   让x增加10个    循环结构
            x = x+10;
        for(int i = 1;i<=10;i++){
            
            }

        int x = 1;
        x+=2;//?3   x=x+2;
        
        byte x =1;  //1常量32bit   = 自动转化
        x+=2;//3   赋值运算
        x=(byte)(x+2);//编译出错  类型从int转化为byte可能有损失
            把x变量空间的值取出   从常量区取过来2  加法运算   结果重新存回x变量空间内
            x空间--->1   8bit         00000001    
            常量区--->2  32bit       0000000   0000000   0000000   0000010
            00000001  +   0000000  0000000   0000000   0000010
            +自动类型提升   8bit1---32bit
               0000000  0000000   0000000  00000001
            +0000000  0000000   0000000   0000010
            0000000  0000000   0000000   0000011==3

 关系运算(比较)
            >     >=    <     <=       !=(不等于)        ==               (对象是否属于类    instanceof)
            1.区分= 和==区别
            =赋值符号    将=后面的内容(值   引用)存入=左边的变量空间内
            ==比较符号    比较==前面和==后面的元素(值  引用)是否一致
            2.比较运算符的最终结果是什么?
              (3>2 ) -->true   ( 3>4) --> false   (3>= 2)-->true   (3!=4)-->true    boolean类型      true     false
            一个条件的判定
         逻辑运算
            逻辑运算符前后连接的两个都是布尔型的值   逻辑运算的最终结果也为布尔
            多个条件
            上课
                1.条件 有时间   同时   2.条件  嗓子好

            &逻辑与    |逻辑或      ^ 逻辑异或      !逻辑非     
            &&短路与  ||短路或 

            (3>2)  &    (3>4)   和  并且
               true     false  
                       false
        ----------------------------------------------------------
            (3>5)   |   (3>4)   或者
               false  |     false
                     false

        ----------------------------------------------------------
            (3>2)^(3>4)异(不同)或---->前后两个结果不一致   就可以
                  true          false            
                true
        ----------------------------------------------------------
            !(3>2)-->false    非--取反  将原来的值取反
        ----------------------------------------------------------
            (3>4)&&(3>2)=?   两个条件同时满足    如果当地一个条件已经为false   最终肯定为false
                  false  &&   
                         false
        ----------------------------------------------------------
            (3>2)||   (3>4)=?        
                  true ||            |是两个条件有一个满足  如果当第一个条件为true    最终肯定为true
                         true
        
            &&短路与
            1.短路什么情况下才会发生短路?    当前面的值结果为false的时候会发生短路
            2.短路的到底是什么?           短路的是&&之后所有的计算过程
            3.如果发生短路的情况      性能比&稍微好一点
            4.&逻辑与   和    &&短路与从最终执行的结果来看没有任何区别
            5.&&不一定提高了性能    只有当前面的值结果为false时才会发生短路     才会提高性能
            
            ||短路或
            1.什么情况才会发生短路?    当前面的值结果为true的时候才会发生短路   
            2.短路的是什么?                   短路的是||之后所有的计算过程
            3.如果发生短路的情况      性能比|稍微好一点
            4.|逻辑或 和   ||短路或      从最终执行的结果来看没有任何区别
            5.||不一定提高了性能        只有当前面的值结果为true的之后才会发生短路       才会提高性能
        
            逻辑运算符前后连接的应该是两个boolean结果
            &逻辑与     可以理解为中文的“和”,“并且”    &前后两个条件必须同时满足   最终为true   否则为false
            |逻辑或       可以理解为中文的“或者”,|前后两个条件只要有一个满足   最终为true
            ^逻辑异或     前后两个表达式只要结果不相同  最终结果为true(专治强迫症)
            !逻辑非      可以理解为中文的“不”   将原来的结果取反

位运算bit  敏感单元位
            &按位与  |按位或    ^按位异或     ~按位取反(单目运算)
            <<按位左位移    >>按位右位移      >>>按位右位移(无符号右位移)


            byte--1字节--8bit
            0(表示正负) 0000000      -128~127(-2的7次方~2的7次方-1)

            
            3 & 5 = ?    
            1.将3和5转化成二进制表示形式
            2.竖着按照对应的位置进行& |  ^ 计算(1当作true   0当作false)
            3.将计算后的二进制结果转化为十进制
            
            00000011
            00000101
            00000001-->1    

            ~6= ?  -7
            知识补充
            原码     反码     补码        二进制表示数字
                    
                       6                            -6
    原码: 00000000 00000000 00000000 00000110             10000000 00000000 00000000 00000110
    反码: 00000000 00000000 00000000 00000110             11111111 11111111 11111111 11111001     符号不动  其余取反                               
    补码: 00000000 00000000 00000000 00000110             11111111 11111111 11111111 11111010    反码+1、
    计算机中不管是正数还是负数        存储的形式都是以补码的形式存储的
    注意  反码是一种表示形式   取反是一个计算过程(每一个位置都取反)
            
            

                6<<1=12
         00000000 00000000 00000000 00000110    
                     0000000 00000000 00000000 000001100
        相当于乘以2的位移次幂

        
                6>>1=3
         00000000 00000000 00000000 00000110
          000000000 00000000 00000000 0000011
        相当于除以2的位移次幂

                            -6>>>1
        11111111 11111111 11111111 11111010
         ?11111111 11111111 11111111 1111101
        >>保留符号位置   1  填1
        >>>不保留符号    原来不管是什么   都填0
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值