------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
Java为基本类型提供语言级别的支持,即已经在Java中预定义,用相应的保留关键字表示。简单的数据类型图如下:
1.基本数据类型
Java为基本类型提供语言级别的支持,即已经在Java中预定义,用相应的保留关键字表示。Java中的基本数据类型共有八种,取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。(下图来源于网络)
2.基本数据类型间的转换
基本类型数据间的转换,有两种方式:自动转换和强制转换
自动转换,具体地讲,当一个较"小"数据与一个较"大"的数据一起运算时,系统将自动将"小"数据转换成"大"数据,再进行运算。这些类型由"小"到"大"分别为 (byte,short,char)--int--long--float—double。这里我们所说的"大"与"小",并不是指占用字节的多少,而是指表示值的范围的大小。如
char c = 'a';
int i = c;
System.out.println("i="+i);//输出:i = 97
强制转换,将"大"数据转换为"小"数据时,可以使用强制类型转换。如
byte b = 3;
b = (byte) (b + 2);
类型自动提升的规则
(1)所有的byte,short,char型的值将被提升为int型;
(2)如果有一个操作数是long型,计算结果是long型;
(3)如果有一个操作数是float型,计算结果是float型;
(4)如果有一个操作数是double型,计算结果是double型;
以上就是Java基本数据类型的一些总结,初学的时候对于类型转换的结果都是直接记忆的,在学习反射时了解Object有一个getClass的方法后发现可以对类型转换的结果进行验证,这里取int类型与其他类型相加的代码示例:
int i = 10;
byte b = 2;
short s = 3;
char c = 'a';
long l = 5 ;
float f = 1.2f;
double d = 1.2354;
Object obj1 = i + b;
Object obj2 = i + s;
Object obj3 = i + c;
Object obj4 = i + l;
Object obj5 = i + f;
Object obj6 = i + d;
System.out.println("int+byte:\t"+obj1.getClass().getName());
System.out.println("int+short:\t"+obj2.getClass().getName());
System.out.println("int+char:\t"+obj3.getClass().getName());
System.out.println("int+long:\t"+obj4.getClass().getName());
System.out.println("int+float:\t"+obj5.getClass().getName());
System.out.println("int+double:\t"+obj6.getClass().getName());
所得的结果为:
这样以此类推,就可以得出基本数据类型相加后自动转换的结果如下表,与规则相符