数据类型转换分为“隐式类型转换”和“显示类型转换”两种。隐式类型转换就是从低级类型向高级类型的转换无需进行任何操作,系统将自动执行。当把高精度的变量的值赋给低精度的变量时则必须使用显示类型转换。
本教程操作环境:windows10系统、Lenovo 小新Air14电脑。
Java中的数据类型的转换
数据类型转换是将一个值从一种类型更该为另一种类型的过程。例如可以将String类型的数据456转换为一个数值型,而且可以将任意类型的数据转换为String类型。
如果胸低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的;而把高精度类型向低精度数据类型转换则必然有信息丢失,有可能失败。
数据类型转换有两种方式,分别是隐式转换和显式转换。
隐式类型转换
第一种是隐式类型转换,隐式类型转换就是从低级类型向高级类型的转换无需进行任何操作,系统将自动执行。这种类型转换称为隐式转换下列基本数据类型会涉及数据转换,其中不包括逻辑类型和字符类型。这些类型按照精度划分从低到高的顺序为:
byte<short<int<long<float<double
代码示例:
public class Test4 { //创建类 public static void main(String[] args) { //主方法 int x = 100; //声明int类型的变量x并赋值 float y = x; //声明float类型的变量并赋值 System.out.println("y的值为:" + y); //输出y的值 } }
运行结果:
隐式类型转换需要遵守一定的规则,来解决在什么情况下将哪种类型的数据转换成另一种类型的数据
隐式类型转换的一般规则见下表:
操作数1的数据类型 | 操作数2的数据类型 | 转换后的类型 |
---|---|---|
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 |
代码示例:
public class Test5 { //创建类 public static void main(String[] args) { //主方法 //定义byte类型的变量mybyte ,并把byte类型的变量允许的最大值赋值给mybyte byte myByte = 127; int myInt = 150; //定义int类型的变量myint并赋值 float myFloat = 452.12f; //定义float类型的变量并赋值 char myChar = 10; //定义插入类型的变量并赋值 double myDouble = 45.46546; //定义double类型的变量并赋值 //输出运算结果 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)); } }
运行结果:
显示类型转换:
第二种就是显示类型转换,也称显示类型转换为强制类型转换。当把高精度的变量的值赋给低精度的变量时则必须使用显示类型转换。当执行显示类型转换时可能会导致精度消失
语法如下:
(类型名)要转换的值
代码示例:
public class Test6 { public static void main(String[] args) { int a = (int)45.23; long b = (long)45.6f; int c = (int)'d'; System.out.println("输出a:" + a); System.out.println("输出b:" + b); System.out.println("输出c:" + c); } }
运行结果:
注意:
当把整数赋值给一个byte short int long 类型的变量时,不可以超出这些类型的取值范围,否则必须进项强制类型转换。
例如:
byte a = (byte)129;
以上就是Java的数据类型转换分为哪两种的详细内容,更多请关注易知道|edz.cc其它相关文章!