JAVA的类型转换

基本数据类型之间的转换(值转换)

  1. boolean类型不可以和其他基本数据类型进行转换

  2. 整型,字符型,浮点型之间的转换遵行一下原则:

    1. 容量小的类型会自动转换成容量大的类型,类型由小到大:
      byte,short,char<int<long<float<double
      byte,shor,char之间不会转换,他们三者在计算时会转换为int型

PS:int型可以 直接(不能是多个(byte/short/char)相加后转换为了int的值(以后能不能看懂。。。。。。))赋值给byte,short,char型,但是不能超出他们的范围。

  1. 容量大的类型在转换为容量小的类型时要加强制转换符,可能会造成精度降低或溢出,要 格外注意
  2. 不同数据类型在计算时会都先转换成里面最大的那种数据类型,然后计算
  1. 实数常量:默认为double型
    整型常量:默认为int型

引用数据类型之间的转换(引用转换)

  1. 把一个Stirng类型表示的值转换成基本数据类型:
    Integer.parseInt(Stirng s)
    Double.parseDouble(String s)
    Boolean.parseBoolean(String s)等等(char有另外的方法)

  2. 把一个基本数据类型转换成String类型:
    Interger.toString(int i)

  3. 由于JAVA的多态,子类可以隐式的转换为父类(其实也就是父类引用指向之类对象),这样的转换过后,父类的引用仍然可以通过强转转化为子类(子类原有的属性和方法不会丢失,因为子类对象在内存中并未发生变化),示例:

    1
    2
    3
    //父类强转回子类后,子类仍可以使用自身属性和方法
    Father father = new Son();
    Son son = (Son)father;
  4. 但是!父类直接强转为子类会报ClassCastException异常

    1
    2
    3
    //会抛出ClassCastException异常
    Father father = new Father();
    Son son = (Son) father;