java基本数据类型之间的转换

2020-03-24 16:28:06来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

java基本数据类型之间的转换

基本数据类型之间的相互转换分为两种,分别是自动类型转换和强制类型转换。

自动类型转换

当需要从低级类型向高级类型转换时,java会自动完成从低级类型向高级类型转换。低级类型是指取值范围相对较小的数据类型,高级类型是指取值范围相对较大的数据类型,如long相对于float是低级数据类型,但是相对于int类型是高级数据类型。在基本数据类型中除boolean外均可参与算数运算。

数据类型从低到高的排序:

graph LR A[byte] --> B[short] B[short] --> C[char] C[char] --> D[int] D[int] --> E[long] E[long] --> F[float] F[float] --> G[double]
  1. 在算数表达式中含有int、long、float、double型的数据
    如果在算数表达式中含有int、long、float、double型的数据,java首先会将所有数据类型相对较低的变量自动转换为表达式中数据类型最高的数据类型,然后再计算,并且计算结果的数据类型也为表达式中数据类型相对最高的数据类型。
    例如:
byte b=75;
char c='c';
int i=123;
long l=12345L;
long result=b*c-i+l;
  1. 在算数表达式中只含有byte、short、char型的数据
    如果在算数表达式中只含有byte、short、char型的数据,java首先将所有变量的类型自动转换成int型,然后在进行计算,并且计算结果的数据类型也为int型。byte、short、char三者之间不能直接相互转换。
byte b=75;
char c='c';
int result=b+c;

强制类型转换

如果需要把数据类型相对较高的数据或变量赋值给数据类型相对较低的变量,就必须进行强制类型转换。
例如:

int a=(int)7.5;
//a的最终结果为7
byte b=(byte)774;
//b的最终结果6

变量b的值为6,原因是整数774超出了byte型的取值范围,在进行强制类型转换时,表示整数774的二进制数的前24位被舍弃,所有最终赋值为变量b的数据是后8位的二进制数。


原文链接:https://www.cnblogs.com/lxy0/p/12561725.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:通用计价的简单代码实现

下一篇:Java连载102-对象类文件的序列化与反序列化