Java数据类型转换浅析

Java数据类型转换分为两种:自动类型转换和强制类型转换。

数据类型转换的关键是数据类型相应的表数范围大小

1、自动类型转换:

  概念:小范围数据类型会自动转化成大范围数据类型

  实例:

1 int a=1000;
2 long b=a;

  

1 float a=300f;
2 double b=a;

2、强制类型转换

  概念:大范围数据类型需要强制转化才能过渡到小范围数据类型

  实例:

1 int a=100;
2 byte b=(byte)a;
1 double a=1000;
2 float b=(float)a;

3、特例

  可以将整型常量(int)直接赋值给byte,short,char类型的变量,而不需要强制类型转换,但要求常量值不超出相应数据类型的表数范围

  实例:

1 byte a=127;     //合法
2 byte b=1000;    //不合法,超出byte表数范围

4、如下,小编采用示意图为大家展示java中基本数据类型之间的转换关系(黑实线表示可以自动类型转换,红虚线表示转换过程可能损失精度)

注意:从int变量的值为千万级(8位数字) 开始,当变量转换成float类型时开始损失精度,而转换成double却不会损失精度

原文地址:https://www.cnblogs.com/coderls/p/6392438.html