- 一、概述
- 二、隐式类型转换
- 三、显式类型转换
- 四、要点总结
一、概述
数据类型转换是将一个值从一种类型更改为另一种类型的过程。
如果从低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的;而把高精度数据类型向低精度数据类型转换则可能会有信息丢失,有可能失败。
数据类型转换有两种方式,即隐式转换与显式转换。
二、隐式类型转换
从低级类型向高级类型的转换,系统将自动执行,程序员无需进行任何操作。这种类型的转换称为隐式转换。下列基本数据类型会涉及数据转换,不包括逻辑类型和字符类型。这些类型按精度从低到高的排列顺序为:byte<short<int<long<float<double。
三、显式类型转换
把高精度的变量的数据赋值给低精度的变量时,必须使用显式类型转换运算(又称强制类型转换)。
语法格式如下:
(类型名)要转换的值
常见的显式数据类型转换的实例:
int a = (int)45.6; //double转int,结果为45
long b = (long)456.6F; //float转long,结果为456
int c = (int)‘d’; //char转int,结果为100
说明:当把整数字面量赋值给一个byte、short、int、long型变量时,如果该字面量的值没有超过这些变量的取值范围,则不需要加强制类型转换符也可以编译通过运行,否则必须要加强制类型转换符进行强制类型转换。
比如说:
byte b = 127;
byte的取值范围为-128~127,虽然是从int型转换为byte型,由于127并没有超过byte的取值范围,因此可以不用加(byte)进行强制类型转换。完整的写法应该为:
byte b = (byte)127;
byte b = (byte)128; //进行了强制类型转换,精度损失,结果为-128
四、要点总结
1.八种基本数据类型中,除了boolean类型不能转换外,剩下七种类型之间都可以进行转换;
2.如果整形字面量没有超出byte、short、char的取值范围,可以直接将其赋值给byte、short、char类型的变量;
3.小容量向大容量转换称为自动类型转换,容量从小到大的排序为:byte<short/char<int<long<float<double,其中short和char都占用两个字节的容量,但是char可以表示更大的正整数;
4.大容量向小容量转换称为强制类型转换,编写时必须添加“强制类型转换符”,但有可能出现精度损失;
5.byte、short、char类型混合运算时,先各自转换成int类型再做运算;
6.多种数据类型混合运算时,各自先转换成容量最大的那一种再做运算。
以上内容均为个人学习的一点心得,其中的知识点若有错误请留言提醒,若有侵权内容提醒马上删除。