java中基本数据类型的转换的简单总结

  java中的数据类型有引用数据类型和基本数据类型。

  引用数据类型:对象,数组,接口。

  基本数据类型:byte(1B),short(2B),char(2B),int(4B),long(8B),float(4B),double(8B)。

  可以想到,占用字节数越多的类型的数据精度越高。在java里,精度低的数据向精度高的数据类型转换系统可以自动完成。但是精度高的数据类型向精度低的数据类型转换是需要强制转换的。数据类型的兼容关系如下:

  byte->short/char->int->long->float->double

  下面总结几种常见的转换:

1.隐式转换

(1)表达式运算时低精度数据自动转向高精度。

System.out.print(7.0/2);
System.out.print('a'+1);

结果分别为3.5和98。 有多种数据类型混合运算时,系统将自动所有数据转换成精度最大的那个类型,然后进行运算。

(2)赋值时低精度数据自动转向高精度。

double a=7;
System.out.print(a);

结果是7.0。

2.显示转换

(1)赋值时高精度数据转向低精度

  int a=(int)7.0;

System.out.print(a);

结果是7。

(2)数据超过范围时进行的高向低强制转换

java默认所有的整数类型为int,默认所有浮点数为double型。

long a=222222222222L;

在数字后面加个L的原因:222222222222已经超出了默认的int类型的范围了,在后面加个L是为了告诉编译器这个数是long型的。注意这里并不是强制类型转换,只是一个声明,告诉编译器这个数是long型的,因为int转向long也根本不需要强制转换。

byte a=(byte)128;

由于byte只能表示到127。128已经超出范围,所以需要进行强制转换。

byte,short只是形式上的,他们是取int的最低1B/2B。当范围在其内,int与他们的操作不需要强制转换。





猜你喜欢

转载自blog.csdn.net/xlantian/article/details/79643815