【无标题】

 类型转换

                //布尔型不能参与转换
                //低精度到高精度可以自动类型转换
                //高精度到低精度需要强制类型转换
                byte b1 = 13;
                short s1 = b1;
                int i1 = s1;
                long l1 = i1;
                //浮点型 采用科学计数法进行存储
                //所以float的32位 可以存储的数据量大于long的64位
                System.out.println(Long.MAX_VALUE);
                float f1 = 95629845625985262566645288888888888888.3F;
                System.out.println(f1);
                f1 = l1;
                double d1 = f1;
                //byte-->short-->long-->float-->double  是自动类型 转换,反之则需要强制类型转换
                //字节       短整型   长整型   浮点型   双浮点型
                short s2 = 129;
                //高到低,需要强制类型转换
                //强制类型转换有可能损失精度,导致数据不正确
                byte b2 = (byte) s2;
                System.out.println(b2);
                
                System.out.println(Integer.toBinaryString(-265));
                //-265 1111111011110111
                
                //1111111011110111  -265二进制
                //当不考虑符号位时 对应的是 65271
                //正数转换为 char时,是忽略负数的,会把响应负数的二进制转换为对应的正数,然后再进行ASCLL码对照
            char c1 = (char)-265;
            System.out.println(c1);
            System.out.println((char)65271);
            char c2 = 'a';
            int i3 = c2;
            //byte-->short-->long-->float-->double  是自动类型 转换,反之则需要强制类型转换
            //字节       短整型   长整型   浮点型   双浮点型
            //char-->int-->long-->float-->double
            //字符型  整数   长整数    浮点型    双浮点型

混合运算


            //布尔型不能参与运算 
            byte d11 = 2;
            int h1 = 10;
            long j1 = 11L;
            //当进行多类型混合运算时,结果为参与运算的最大类型
            long result = b1 + i1 + l1;
            //当混合运算类型只出现了byte short int char 四种类型时
            //任意一种或多种进行运算,结果一点定时int类型(可以理解为混合运算,结果为参与运算的最大类型,但最低也是int类型)
            byte d2 = 1;
            byte b3 = 1;
            int b4 = b2+b3;
            char c11 = 'a';
            int c21 = c11+b2;

小结


            //1.long需要L结尾,建议大写
            //2. float使用F结尾
            //3.double 结尾D可以省略
            //4.char类型应用,ASCII码对照表a=97,A=65,0=48,unicode编码
            //5.布尔型不参与转换
            //6.强制类型转换有可能损失精度
            //7.byte,short,int,char四种中,任意一种或多种进行混合运算时,结果一定是int类型
            //8.当进行多类型混合运算时,结果为参与运算的最大类型

变量

// 常量:生命周期中,值不能修改,但是可以复用
    final int o = 2;
    // o = 3;
    // 字面量,占用临时空间存储,数字 默认是int
    // 并且不能复用,只能临时使用一次,由于没有找到的路径,所以压根也不能修改
    System.out.println(123);

变量中的分类


    
//    Java中变量分为三类
//    局部变量 : 在方法中写的变量,是局部变量(参数列表也是)
//    静态变量 : 在类体中,使用static修饰的变量是静态变量
//    成员变量 : 在类体中,没有使用static修饰的变量是成员变量

变量调用


    
//    变量必须先声明后使用
    // 局部变量
    int i = 2;
    // 局部变量调用,在方法中,直接写变量名调用,方法外 调用不了
    System.out.println(i);
    // 静态变量调用,使用类名.静态变量名,需要考虑权限修饰符
    System.out.println(m001.a);
    // 如果在类中调用当前类的静态变量,类名也可以省略
    System.out.println(a);
    // 创建对象
     m001 obj = new m001();
     System.out.println(obj.a);

 算术运算符

System.out.println(10 + 3);
    System.out.println(10 - 3);
    System.out.println(10 * 3);
    // 由于都是整数,所以结果也是整数 3
    System.out.println(10 / 3);
    // 由于3.0是double 所以结果是 double 3.3333335
    System.out.println(10 / 3.0);
    // 由于10和3都是整数,所以得 3 , 由于 1.0是double,所以 得 4.0
    System.out.println(10 / 3 + 1.0);
    // 余数
    System.out.println(10 % 3);
    
    //------------------------
    // ++ : 自身+1, 把值取出来+1在放回去 , i++ 就等于 i=i+1
    int i = 10;
    i++;
    ++i;
    // 如果 i++ 和 ++i 单独出现,则没有区别, 直接自身+1 完事
    System.out.println(i);
    // 如果 在混合运算中 i++ 和 ++i 就有区别了
    // i++ 先赋值 后 + 1(i的值,是+1之前的值)
    // ++i 先+1 后赋值 (i的值,是+1之后的值)
    i = 10;
    i = i++;
    // i = i++; i = 10
    // i = 10++; i = 10
    // i = 10; i = 11
    // i = 10;
    // ++ -- 属于一元运算, 一元优先级大于二元
    i = i++ + i;
    // i = i++ + i; i = 10
    // i = 10++ + i; i = 10
    // i = 10 + i; i = 11
    // i = 10 + 11; i = 11
    // i = 21; i = 11
    // i = 21;

    i = 10;
    i = ++i + i;
    System.out.println(i);

关系运算符


    //关系运算符 结果 一定是布尔型 true/false

    //> >= < <= == !=

     //== 比较基本类型时  比较的是值,比较引用类型时则比较内存地址
       int a = 10, b = 11;
       System.out.println(a > b);
       System.out.println(a >= b);
       System.out.println(a < b);
       System.out.println(a <= b);
       System.out.println(a == b);
       System.out.println(a != b);


       
       逻辑运算符


       
       //& , | , !  与或非

// & : 与 , 两边都是真,结果才是真 并且的意思
// & 也支持与运算,两边是数字,即可进行与运算
//先把两个数转换为二进制进行每位比较,都是1则取1,反之则取0 , 结果一定不大于两个数中的最小数

//| : 或 , 两边一个条件成立,结果就是真

// ! : 非 , 取反意思,真变假,假变真

// &&   ||   短路

//& : 不短路,两边都是真,结果才是真,比如第一个条件已经为假了,结果一定是假,但是第二个条件依然会执行
//&& : 短路,第一个为假,则第二个不执行

// ^ : 异或 , 两边不一样结果才是真 
// 如果两边是数字,则进行异或运算,二进制每位进行比较,不同取1,相同取0

// >> : 右移运算 : 右移一次,就相当于该数 除2  (符号位不变)
//    转换二进制,进行移位,右移一次,则删除最右边一个,并在最左边(非符号位)添加一位 (如果是整数则补0,负数则补1)

// >>> : 右移运算 : 不考虑符号位,并且不考虑正负数,只在最左边补0 , 所以负数 有可能变正数

// << : 左移运算,向左移动一位,相当于该数乘2,删除左边(非符号位),右边补0


          int f = 10 , g = 11;
          System.out.println(a > b & ++a>=b);
          System.out.println(a > b | ++a>=b);
          System.out.println(!true);
          // 0000 0110
          // 0000 1000
          // 0000 0000
          System.out.println(6&8);
          
          a = 10;
          b = 11;
          System.out.println(a > b && ++a>=b);
          System.out.println(a);
          System.out.println(true ^ true);
          // 0000 1010
          // 0000 0111
          // 0000 1101
          System.out.println(10 ^ 7);
          // 相同数 异或两次 , 得0
          System.out.println(8^8);
          // 0 和任何数进行异或,还是该数
          // 0000 0000
          // 0000 0111
          System.out.println(0^8);
          // a ^b ^b  得a 
          System.out.println(465465^8989^8989);
          
          System.out.println(-2 >> 1);
          // 1000 0010   1111 1101  1111 1110
          // 01111 111
          System.out.println(-2 >>> 1);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值