数据类型转换:类型转换是将一个值从一种类型更改为另一种类型的过程

补充:

  • 可以将任意类型的数据转换为String类型
  • 如果从低精度向高精度数据类型转换,则永远不会溢出,并且总是成功的 如果把高精度向低精度类型转换必然会有数据丢失,有可能会失败

数据类型转换的两种方式:

一、隐式类型转换

      从低级类型向高级类型转换,系统将自动执行,程序员无需进行任何操作,这种类型的转换称为隐式转换

下面这些基本数据类型会涉及数据转换,不包括逻辑类型和字符类型,精度的大小排序为:

byte < short < int < long < float < double

隐式类型转换计算的时候,不同类型的数据进行运算的时候,结果类型总是精度大的那个,大概可以按照下面这种公式进行理解:

隐式类型转换规则:

( byte / short / char )+ int = int
( byte / short / char / int )+ long = long
( byte / short / char / int / long )+ float = float
( byte / short / char / int / long / float )+ double= double

简单代码例子如下(只写了关键代码,没写main方法):

byte mybyte = 127;
int myint = 150;
float myfloat = 452.12f;
char mychar = 10;
double mydouble = 45.46546;

 // 运算如下
System.out.println("byte和float运算===》" + (mybyte + myfloat));
System.out.println("byte和int运算===》" + (mybyte + myint));
System.out.println("byte和char运算===》" + (mybyte + mychar));
System.out.println("double和char运算===》" + (mydouble+ mychar));

输出结果:

// 运算如下
 byte和float运算===》579.12
 byte和int运算===》19050byte和char运算===》12
 double和char运算===》55.46546

二、显式类型转换(又称强制类型转换)

当把高精度的变量的值赋给低精度的变量时,必须使用显式类型转换运算(又称强制类型转换)

语法如下:

(类型名)要转换的值

简单代码举例如下:

int a = (int)44.22 (此时输出的a值为45  浮点精度类型强转为int整数)

long y = (long)458.9f (此时输出的y值为458  浮点精度类型强制转换为long)

int b = (int)'d' (此时输出的b的值为100 char类型强转为int类型)

注意:

当把整数赋值给一个byte、short、int、long等类型变量时,不可以超出这些变量的取值范围,否则必须进行强制类型转换,比如:

byte b = (byte)129    // 129已经超出byte的范围了,byte的取值范围是:-128~127