Java数据类型
学习任何一门计算机语言,熟练掌握其数据的类型是最基本的前提。
一 数据类型
PS:这里提醒一点,如果问到每种数据类型所占内存的大小时,请务必先关心操作系统是32位还是64位。
二 数据类型的转换
1. 自动类型转换
也称为"隐式类型转换", 是自动发生,一般不需要程序员处理;
如:char —> int —> long —> float —> double。
2. 强制类型转换
反方向转换,强制类型转换也称为显式类型转换,这种转换会溢出,或者损失精度,要注意数据的范围。
如:double —> float —> long —> int —> short —> byte。
三 引用类型转换
- 向下转型(隐式/自动类型转换),是小类型到大类型的转换;
- 向上转型(显示/强制类型转换),是大类型到小类型的转换;
- instanceof运算符,用来检查引用对象的类型。
四 包装类及其拆箱装箱
基本类型的数据不是对象,所以对于要将数据类型作为对象来使用的情况,Java提供了相应的包装类。
1. 装箱
就是把基本类型用它们相对应的引用类型包起来,使它们可以具有对象的特质,如我们可以把int类型包装成Integer类的对象。
2. 拆箱
就是跟装箱反方向的操作,将Integer这样的引用类型重新简化为值类型的数据。
3. 自动拆装箱
Java SE 5.0以后提供了自动装箱与拆箱的功能,此功能事实上是由编译器来帮你的忙,编译器在编译时期依你所编写的方法,决定是否进行装箱或者拆箱动作。
- 自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。
- 自动拆箱的过程:每当需要一个值时,被装箱对象中的值就自动地提取出来,没必要再去调用intValue()或者doubleValue()方法。
4. 基本数据类型与包装类的对应