Java 2 -- 数据类型间的转换

自动转换

转换规则就是小数据类型变成大数据类型,但大数据类型的精度有时会被破坏,如下:

// 定义各种数据类型
int i = 123;
char c1 = 22; // 表示一个整数
char c2 = 'c';
byte b = 2;
// 自动转换的数据类型
int n = b;
long l = i;

强制转换

明明不能自动转换,而强制性地进行转换。

// 定义数据类型
int i  = 22;
long L = 33;
// 强制转换
char  c = (char)i;
int n = (int) L;

注意:强制转换类型是会丢失精度的,经常会发生转换之后数据发生变换的情况。但是在一些必要的地方又必须进行强制类型转换。所以要谨慎和准确地使用强制类型转换。

隐含转换

隐含转换和自动转换很相似,Java 虚拟机根据数据类型的位数来判断此数据类型是否能装载此数据,如果能,Java 就默认进行了转换,如下:

byte b = 111;

int i = 222;
byte c = (byte) i;

上面语句中有两个转换,一个是 111 转换成 byte 类型的数据库,因为 byte 类型的数据位数能装下 111,所以能进行转换,这就是隐含转换。把值为 222 的变量 i 转换成 byte 类型的变量 c 就不能进行隐含转换,因为能进行隐含转换的只能是常量而不能是变量

发布了64 篇原创文章 · 获赞 6 · 访问量 5537

猜你喜欢

转载自blog.csdn.net/weixin_45494811/article/details/104324906