0基础学java之Day04(上午完整版)

一、字符串拼接符

符号:+

注意: +两侧都是数值,此符号为算数运算符 +两侧有一侧是字符串或两侧都是字符串,此符号为字符串拼接符

System.out.println(1+2+"abc"+"def"+1+2);
      //             3+"abc"+"def"+1+2
      //              "3abc"+"def"+1+2
      //                 "3abcdef"+1+2
      //                  "3abcdef1"+2
      //                    "3abcdef12"

二、逻辑运算符

符号: &与 &&短路与 |或 ||短路或 ^异或 !非

注意: &、&&、|、||、^:前后两者接boolean值 !后面接boolean值,表示置反 逻辑运算符的结果必须是boolean值

            //&与:两侧接boolean值,两侧都成立(true),结果才为true
            System.out.println(true&true);//true
            System.out.println(false&true);//false
            System.out.println(true&false);//false
            System.out.println(false&false);//false
            
            //&&短路与:两侧接boolean值,两侧都成立(true),结果才为true
            //&&短路与:判断前者为false后,不会判断后者,效率高
            System.out.println(true&&true);//true
            System.out.println(false&&true);//false
            System.out.println(true&&false);//false
            System.out.println(false&&false);//false
            
            //|或:两侧接boolean值,两侧有一侧为true,结果就为true
            System.out.println(true | true);//true
            System.out.println(false | true);//true
            System.out.println(true | false);//true
            System.out.println(false | false);//false
            
            //||短路或:两侧接boolean值,两侧有一侧为true,结果就为true
            //||短路或:判断前者为true后,不会判断后者,效率高
            System.out.println(true || true);//true
            System.out.println(false || true);//true
            System.out.println(true || false);//true
            System.out.println(false || false);//false
            
            //^异或:两侧接boolean值,相同为false,不同为true
            System.out.println(true ^ true);//false
            System.out.println(false ^ true);//true
            System.out.println(true ^ false);//true
            System.out.println(false ^ false);//false
            
            //!非 - 置反:true变flase,false变true
            boolean bool1 = true;
            System.out.println(!bool1);//false
            boolean bool2 = false;
            System.out.println(!bool2);//true
            
            

三、位运算符

知识点:位运算符 理 解:将十进制的数据转换为二进制,再做运算

    符号:
        &与  |或  ^异或
        << 左移
        >> 右移
        >>>     无符号位右移
        
    注意:
        &、|、^:前后两侧是boolean值,此符号为逻辑运算符
        &、|、^:前后两侧是数值,此符号为位运算符

//&与:同位比较,两者为1,结果才为1
        byte b1 = 20;                      //0001,0100
        byte b2 = 19;                      //0001,0011
        byte result = (byte)(b1 & b2);
        System.out.println(result);//16 -- //0001,0000
//|或:同位比较,两者有1,结果就为1
        int i1 = 20;//0000,0000,0000,0000,0000,0000,0001,0100
        int i2 = 19;//0000,0000,0000,0000,0000,0000,0001,0011
           //i1+i2    0000,0000,0000,0000,0000,0000,0001,0111
        System.out.println(i1 | i2);//23
//^异或:同位比较,相同为0,不同为1
        int i1 = 20;//0000,0000,0000,0000,0000,0000,0001,0100
        int i2 = 19;//0000,0000,0000,0000,0000,0000,0001,0011
                    //0000,0000,0000,0000,0000,0000,0000,0111
        System.out.println(i1 ^ i2);//12
//<<左移:整体向左移动n位,就用n个0补位(补到最低位)
        //经验:左移1位相当于乘以2
        int a = 1024;//0000,0000,0000,0000,0000,0100,0000,0000
                     //0000,0000,0000,0000,0001,0000,0000,0000
        System.out.println(a << 2);//4096
//>>右移:整体向右移动n位,就用n个最高位补位
        //经验:右移1位相当于除以2
        int b = 1024;//0000,0000,0000,0000,0000,0100,0000,0000
                     //0000,0000,0000,0000,0000,0001,0000,0000  正数按照0补位,补到最高位
        System.out.println(b >> 2);//256
        int c = -1024;//1111,1111,1111,1111,1111,1100,0000,0000 负数按照1补位,补到最高位
                      //1111,1111,1111,1111,1111,1111,0000,0000
        System.out.println(c >> 2);//-256
//>>>无符号位右移:整体向右移动n位,就用n个0补位(补到最高位)
        int d = 1024;//0000,0000,0000,0000,0000,0100,0000,0000
                     //0000,0000,0000,0000,0000,0001,0000,0000
        System.out.println(d >>> 2);//256
        
        int e = -1024;//1111,1111,1111,1111,1111,1100,0000,0000
                      //0011,1111,1111,1111,1111,1111,0000,0000(最高位补0变为正数)
        System.out.println(e >>> 2);//1073741568
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值