美文网首页
Java类型转换知识点

Java类型转换知识点

作者: 07120665a058 | 来源:发表于2018-09-03 10:19 被阅读15次
    • 基本类型:从左到右转换规则表
    char byte short int long float double
    char
    byte
    short
    int
    long
    float
    double
    • String 转 Integer / int
    Integer.parseInt()  return a primitive int.
    Integer.valueOf()  returns an new Integer() object.
    NumberFormatException: string does not contain a parsable integer
    
    • Integer / int 转 String
    Integer.toString(int)
    String.valueOf(int)
    new Integer(int).toString()
    String.format()
    StringBuffer or StringBuilder
    

    强制类型转换

    基本类型:

    • 长整型转换为短整形,是直接截取低位的值,不保留符号位
    • 短整形可以直接转换为长整型,高位补0
    • 举例:int是32位的,short是int的低16位,char是int的最低8位
    @Test
    void should_truncate() {
       final int negativeInteger = 0x7fff_ffff;
       final short negativeSmallInteger = (short) negativeInteger;
     
       assertTrue(negativeInteger > 0);
       assertTrue(negativeSmallInteger < 0);
    }
    

    引用类型:

    • 子类可以隐示转换成父类
    • 父类可以强制转换成子类,语法没有错误,但是运行时有错
    • 举例:通过转换成Object,再进行转换就不会报错:
    Object value = "string";
    String values = (String) new Object(); 
    Number ->Object -> Integer ( Integer extends Number)
    
    • 只有在同一继承链上才可以转换,否则不能转换
    • 举例:Integer 和 Short 不能进行转换,因为 Integer 继承 Number,Short 继承Number,Integer 和 Short 不在同一条继承链上
    Number numberValue = 1;
    Object value = numberValue;
    Integer integerValue = (Integer) value;
    

    int 转 string 参考
    Convert using Integer.toString(int)
    Convert using String.valueOf(int)
    Convert using new Integer(int).toString()
    Convert using String.format()
    Convert using DecimalFormat
    Convert using StringBuffer or StringBuilder

    相关文章

      网友评论

          本文标题:Java类型转换知识点

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