介绍
Java 中总共包含8种数据结构,分别是 byte
、short
、int
、long
、float
、double
、char
和boolean
。
基本数据类型间的转换
数字类型之间的转换
数字类型间的转换原则就是:拓宽类型时,不需要显式声明类型转换;缩窄类型时,需要显示声明类型转换。拓宽类型就是从小范围数据类型到大范围数据类型转换,如从 int 类型到 long 类型,本身 int 类型的范围就比 long 类型的要小,所以就可以直接隐式的转换了。而反之就是缩窄类型,如果超过了要转换到的小范围类型的取值范围,一般都会发生精度的丢失。
数字类型与字符类型之间的转换
数字类型可以直接转换到字符类型,由于字符类型的存储大小只有16位,所以转换时只会使用低16位。若是浮点数类型则只将整数部分转换成字符类型。
chara=97;//a的值是'a'
字符类型转到数字类型也可以直接转换,会将字符的统一码转换成指定的数值类型。但若这个值超过了要转换到的数据类型的取值范围,则需要显式的声明类型转换。
inta='a'//a的值是97,即字符a的ASCII码
基本数据类型的包装类
Java中为每个基本数据类型都提供了一个包装类
byte → Byte、short → Short、int → Integer、long → Long、float → Float、double → Double、char → Character、boolean → Boolean
这么做是为了解决基本数据类型并不是面向对象的问题。
各位也无需去记住上面表格中每种基本数据类型的取值范围,它们对应的值都在对应的包装类中能找到,如
System.out.println("int的存储位数:"+Integer.SIZE);System.out.println("int的最小值:"+Integer.MIN_VALUE);System.out.println("int的最大值:"+Integer.MAX_VALUE);
结果为
int的存储位数:32int的最小值:-2147483648int的最大值:2147483647
在算法题解中Integer.MIN_VALUE
等我们也是经常能看见。
总结
基本的数据类型其实所有语言都差不多,最重要的就是掌握好数据类型的相互转换,了解各个数据类型的取值范围差异。