Java-数据类型转换

Java-数据类型转换解析

Posted by Jinliang on March 15, 2017

精度优先级:

byte<short<char<int<long<float<double

在Java语言中,当参与运算的两个变量的数据类型不同时,就需要进行隐式的数据类型转换,转换规则为:由低精度向高精度转换。


  • 类型自动转换

    char类型转换为高级类型时,会转换成对应的ASCII码 基本类型数据与boolean不能互转 byte、short、char类型在参与运算时自动转换为int,但是当使用+=运算符时却并不会。

  • 强制类型转换

    就是从高精度转换成低精度,注意,在强制类型转换时可能会损失精度。


要点:

  • Java语言中null值是什么,在内存中又是什么?

    null不是一个合法的Object实例,编译器并没有为它分配内存,它用于表明当前变量没有指向任何实例。
    
  • 理解String str = null;

    在Java中,变量分为两类,原始值和引用值,原始值存储的是实际的值,引用值存储的是对象的地址。对于String str = null;,它定义了一个引用值,str存放的是String的引用,此处为null。

  • float = 4.5;是错误的,对造成精度损失。

    因为4.5默认是double类型的,强制转换成float会造成精度损失。所以要写成float = (float)4.5;或者float = 4.5f;

###