Java中的数据类型转换

先来看一个题:

Java类Demo中存在方法func0、func1、func2、func3和func4,请问该方法中,哪些是不合法的定义?( )

public class Demo{
  float func0()
  {
    byte i=1;
    return i;
  }
  float func1()
  {
    int i=1;
    return;
  }
  float func2()
  {
    short i=2;
    return i;
  }
  float func3()
  {
    long i=3;
    return i;
  }
  float func4()
  {
    double i=4;
    return i;
  }
}

答案:func1( )和func4( )不合法。

前者没写具体的返回值,后者不可以自动转换类型,须得强制转换。

解析:

数据类型的转换,分为自动转换和强制转换。自动转换是程序在执行过程中 “ 悄然 ” 进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换;强制类型转换则必须在代码中声明,转换顺序不受限制。

自动数据类型转换:

自动转换按从低到高的顺序转换。不同类型数据间的优先关系如下: 

    低 ---------------------------------------------> 高 

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



运算中,不同类型的数据先转化为同一类型,然后进行运算,转换规则如下:

Java中的数据类型转换

强制数据类型转换:

强制转换的格式是在需要转型的数据前加上 “( )” ,然后在括号内加入需要转化的数据类型。有的数据经过转型运算后,精度会丢失,而有的会更加精确。

上一篇:System Verilog随笔(1)


下一篇:angularjs 与django标签语法冲突的解决办法