Java类型转换

数据类型转换

Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

运算中,不同类型的数据先转换成同一类型,然后进行运算。

低-------------------------------------->高
byte->short->char->int->long->float->double
按数据类型字节大小容量从低到高排列。

类型转换分为强制类型转换和自动类型转换。

强制转换:当变量类型从高到低需要强制转换,格式为(类型)变量名。

自动转换:当变量类型从低到高进行自动转换。

int a=128;
byte b=(byte)a;//输出结果时-128
//int类型最大值为127,结果128已经超出最大值,内存溢出结果错误。
double c=a;//输出结果时128.0

 System.out.println((int)101.1);//输出结果101
 System.out.println((int)-102.1f);//输出结果102
//当高容量类型强制转换低容量类型精度丢失。

 char d='a';
 int e=d+1;
 System.out.println(e);//输出结果98.
//char类型本质也是数字。

 int money=10_0000_0000;//输出结果1000000000
//JDK7新特性,数字之间可以用下划线分割。
 int years=20;
 int total1=money*years;//输出结果-1474836480
//int类型最大数值是2147483647计算的结果已经超过范围,结果溢出了。
 long total2=money*years;//输出结果-1474836480
//结果默认是int,转换前已经出现问题了。
 long total3=money*(long)years;//20000000000
//不同类型的数据先转换成同一类型,然后进行运算。先强制一个数转换为long类型,计算时另一个int类型自动转换成了long类型然后开始计算,结果在long类型的范围内输出了正确结果。
posted @ 2021-02-09 20:08  牡丹江的江  阅读(33)  评论(0)    收藏  举报