美文网首页
类型转换

类型转换

作者: 满天星爱我 | 来源:发表于2018-09-25 12:21 被阅读4次

    类型转换分为基本数据类型的类型转换和引用数据类型的类型转换

    • 基本数据的类型转换
      1、向上转型(自动转型):低位向高位
      2、向下转型(强制转型):高位向低位

    例子:

    public static main(String[] args){
    byte b = 3;
    byte b = b + 1;
    System.out.println(b);
    }
    

    执行程序后发现报错,原因:
    由于bbyte类型,而byte类型是由1个字节8位组成,1是整数默认类型为int,而int类型由4个字节32为组成,再做运算时,8位的byte类型会自动提升(向上转型)为32位的int类型,此时=两边的类型就会不统一,因此会报错,那么就需要让=右边做类型转换,转换后的代码如下:

       byte b = (byte)(b + 1);
    

    将32位 int类型强转(向下转型)为8位的byte类型

    • 引用类型的类型转换
      1、由于子类是继承父类,所有子类可以很自然的向上转型为父类
      2、父类转换成子类需要强制转换

    例如:

      class Parent{
      }
      class Child extends Parent{
      }
    

    Child类型向上转型为Parent类型

      Parent p = new Child();
    

    Parent类型向下强转为Child类型

       Child c = (Child)new Parent();
    
    • 注意比较特殊的一种

    如下代码:

      System.out.println('a'+1);
    

    输出结果:

      98
    

    由于字符aASCII编码表中对应的值为十进制的97
    因此输出结果为98。

    注意
    每一个字符在编码表中都有其对应的数值。

    相关文章

      网友评论

          本文标题:类型转换

          本文链接:https://www.haomeiwen.com/subject/ivjycftx.html