Javase学习-01基本数据类型及运算符

import javax.xml.bind.SchemaOutputResolver;

/**
*author: TS
*createtime: 2021/3/28
*第一个类
*/
 class HelloWorld{
     /**
     入口方法
     */
    public static void main(String args[]){
        
        //收到回复
        /*
        *1、
        *2、
        */
        // 四类八种基本数据类型  常用数据类型:String
        // 整型
        byte n1 = 10; // (占用1字节 8位)
        short n2 = 100; // (占用2字节 16位)
        int n3 = 1000;  // (占用4字节 32位)
        long n4 = 10000L; // L大写  (占用8字节 64位)
        //浮点型
        float m1 = 0.1F; // F与f都可以  (占用4字节 32位)
        double m2 = 0.2;// 默认为双精度,无要求  (占用8字节 64位)
        //字符型
        char h = 'a'; // (占用1字节 8位)
        //布尔型
        boolean isEmpty = true;
        
        /* 
        赋值运算需要保证准确度,只可小转大,不可大转小
         1.一般变量进行赋值运算 结果默认统一转换为int ,需强转
         2.long+any整型运算符 结果转化为long
         3.浮点型+整型 结果为浮点型
         双精度+其他-->双精度double(优先)
         单精度+其他-->单精度float
        */
        short n12 = (short)(n1 + n2);
        System.out.println("n12="+n12); 
        
        byte a1 = 1;
        byte a2 = 2;
        byte a3 = (byte)(a1 + a2);
        byte a4 = (byte)(a1 & a2);
        byte a5 = 1+2;
        System.out.println("a3="+a3);
        System.out.println("a4="+a4);
        System.out.println("a5="+a5);
        
//        long result = 100000000;
//        System.out.println("result的值为:"+result);
//
//        float num1 = 0.1f+0.2f;
//        System.out.println("num1的值为:"+num1);
//
//        double num2 =0.1+0.2;
//        System.out.println("num2的值为:"+num2);
//
//        char name1 = 'a'+10;
//        System.out.println(name1);

        //逻辑运算,与、 或、 非、
        boolean flag1 = true;
        boolean flag2 = false;
        
        System.out.println(flag1 & flag2); //
        System.out.println(flag1 | flag2); //
        System.out.println(! flag1); //
        System.out.println(flag1 ^ flag2); // 异或:相同为false,不同为true
        
        
        // 算术运算符 +  -  *  %  ++  --  +=  -=  *=  /=
        int count = 0; // 等于count = count + 1;
        System.out.println("++的结果是:" + ++count);
        count += 5; // 等于count = count + 5;
        System.out.println(count);
        
        // 逻辑运算符 &  |  !   ^  &&  ||  >  <  >=  <=  ==  !=
        System.out.println(1 + 1 == 2 || 1 > 2);// 算术运算符优先于逻辑运算符
        
        // 三目运算符  condition ? result1 : result 2;
        int res = 1>2 ? 5 : 6; // true为5,false为6
        System.out.println(res);
        
        // 位移运算 
        // << num * 2^2 不要溢出最高位的1
        // >> num / 2^n 不要溢出最低为的1
        int a = 8 << 63;
        System.out.println(a);
        
         /*
            二进制层面  :
            &(与):
            2: 00000010
            7: 00000111
            w: 00000010 = 2(10进制)
         */ 
        byte w = 2 & 7;
        System.out.println(w);
        
        /*
            |(或):
            4: 00000100
            8: 00001000
            n: 00001100 = 12(10进制)
        */
        
        byte n = 4 | 8;
        System.out.println(n);
        
        
        // 类型转换
        
        /* 小转大:
        byte(num3):           00001000  = 8
         short       00000000 00000000  = 0
         num4 :      00000000 00001000 = 8
         */
        byte num3 = 8;                    
        short num4 = (short)num3; 
        System.out.println(num4);
        /* 大转小:
        short        01110000 00000001 = 30000 
        byte:                 00000000 = 0
        num6 :      00000000 00000001 (补码)
                              00000000 (反码)    
                              11111111 = 127(损失数据,报错)
        
        
         */
         
         /*
         short(130)0000000 10000010
         byte         10000010 (补码)
                            10000001(补码+1=反码)
                            11111110(除符号位全部取反=原码) = -126
         */
        short num5 = 130;  
        byte num6 = (byte)num5;        
        System.out.println(num6);
        
        
        
    
    }
}

 

posted @ 2021-03-29 16:50  TSCCG  阅读(94)  评论(0编辑  收藏  举报