Java_总结二(基本数据类型默认值、基本数据类型转换、运算符、反码与补码、位运算)

一、基本数据类型默认值

 

 二、基本数据类型转换

  --boolean 类型不能转换成任何其它基本数据类型。

  --自动类型转换:数据类型取值范围小的转为取值范围大的

  --byte , short , int -> long -> float -> double

  --char -> int -> long -> float -> double

  --short , char不会互相转换

  --byte + short + char三者在计算时会转换成int类型

  --强制类型转换:数据类型取值范围大的 转为 取值范围小的. 需要加强制转换符,也就是(要转换的数据类型)

  --long l = 100L;int i = (int)l; 但有可能造成精度降低或数据溢出,使用时要小心。

   》》》char 和 int 转换实例

        char a = 'a';
        int b = a;         //字符类型转换整型
        char d = 97;     //整型转换字符类型
        System.out.println(b);
        System.out.println(d);

  输出结果:

        b = 97
        d = a

 

三、运算符

  --算术运算符:+ 、 - 、 * 、 / 、 % 、 ++ 、 --

  --赋值运算符:= 、 += 、 -= 、 *= 、 /= 、 %=

  --关系运算符:> 、 < 、 >= 、 <= 、 == 、 !=

  --逻辑运算符:! 、 & 、 | 、 ^ 、 && 、 ||

  --位运算符   :& 、 | 、 ^ 、 ~ 、 >> 、 << 、 >>>

  --字符串连接运算符:+

  注意点:

    (1)自增++、自减--

        int j = 0;
        int a = 0;
        for (int i = 0; i < 10; i++) {
            System.out.println(i);  //for循环先执行再自增
            j++;            //j已经自增结束,j = 1
            System.out.println(j);
            System.out.println(a++); //在打印中,先打印a出来再执行自增,a = 0
        }

    结果:
    
i = 0
    j = 1
    a = 0

  (2)+= 、 -= 、 *= 、 /= 、 %=

        float a = 1.0f;
        //a = a + 2.0;  //错误,2.0默认是double类型
        a += 2.0;       //正确,a += 2.0 --> a = (float)(a + 2.0);

  (3)逻辑与(&)、 逻辑或(|) 、 短路与(&&) 、 短路或(||)

    --短路与&&、短路或||,只要第一个条件能判断出来,就不会进行第二条条件判断

    --逻辑与&、逻辑或|,两个条件都要判断

 

        //短路与
        int i = 1;
        if (1==2 && 2==(++i)) {
            System.out.println("我进来了");
        }
        System.out.println(i);
    
     结果:
    
i = 1
        //逻辑与
        int i = 1;
        if (1==2 & 2==(++i)) {
            System.out.println("我进来了");
        }
        System.out.println(i);

     结果:
       i = 2

  (4)三目运算格式

        //三目运算格式
        int score = 75;
        String type = score >=60 ? "及格" : "不及格";

 

四、反码与补码

  为什么有补码?

    在计算机的数据表示中只定义了正数的表现形式,并没有定义负数的表现形式,所以,负数一般都用补码的形式表示

  正数

    正数的原码、反码、补码都相同

  负数  

    负数的反码是符号位为1外,其他位全取反;补码就是 "反码+1";

        //负数的补码
        原码:1000 1001
        反码:1111 0110
        补码:1111 0111


     //java的反码符号 ~
    
~-3 = 2

  -3的反码为什么是2,因为计算机计算负数都是以补码来计算,然后~取反

 

五、位运算

  --左移:"a<<b; "将二进制形式的a逐位左移b位,最低位空出的b位补0

  --带符号右移:"a>>b; "将二进制形式的a逐位右移b位,最高位空出的b位补原来的符号位

  --无符号右移:"a>>>b;"将二进制形式的a逐位右移b位,最高位空出的b位补0

 

posted @ 2017-05-04 13:39  Java_皮卡丘漏电  阅读(174)  评论(0编辑  收藏  举报