Java基础--基本类型的互相转化

来源:互联网 发布:linux权限设置 编辑:程序博客网 时间:2024/05/18 15:56

1.自动类型转化

容量小的数据类型可以自动转化为容量大的类型。(这里的容量指的不是字节大小,二十表述范围)

特例:

可以将整型常量直接赋值给byte、short、char,而不需要进行强制转化,只要不超出其范围即可。

short  a = 1;//合法short  b = 1234567;//不合法

2.强制类型转化

强制类型转化又叫做造型。用于显示的转换一个数值的类型。在有可能丢失信息的情况下进行的转化是通过造型完成的,但可能造成精度降低或者是溢出。

当一个类型强制转化为另一个类型,而又超出了目标类型的表示范围,就会被截断成为一个完全不同的值。例如:

int a =-100;char c =(char)a;//-100超出char的范围,所以被转化为完全不同的值,无意义的值。

3.运算时的类型提升问题

表达式的类型提升问题

int a = 3;
long b = 4;
int c = a+b;//编译将会出错,提示可能损失精度。原因:a是int类型,b是long类型,在进行运算a+b结果,类型提升为long类型,将一个long类型赋值给int所以会提示损失精度。

做所有二元运算符(+-*/%),都会出现类型提升问题,解决方法为进行类型转换即可。
4.基本类型数据在转化的时候常见错误和问题

例1:

int a =1000000000;int b = 200;int c = a*b;System.out.println(c);//输出结果为-1863462912,这是因为a和b相乘的结果超过int的范围,产生了溢出。





0 0
原创粉丝点击