数据类型

Java数据类型分为两种:基本数据类型、引用数据类型

基本数据类型

byte

字节型,占用字节1字节8位,默认值0,对应的封装类Byte,最大值127及2的7次方-1,最小值-128即-2的7次方,算是整数类型中最小的类型了。

short

短整型,占用2字节16位,默认值0,对应的封装类Short, 最大32767即2的15次方-1,最小-32768即-2的15次方。

int

整型,占用4字节32位,默认值0,对应封装类Integer,最大2147483647即2的31次方-1,最小-2147483648即-2的31次方,也是我们最常用的数据类型吧。

long

长整型,占用8字节64位,默认值0,对应封装类Long,最大9223372036854774807即2的63次方-1,最小-9223372036854774808即-2的63次方。

float

单精度浮点型,占用4字节32位,对应封装类型Float,默认0.0,取值范围参考IEEE 754规范

double

双精度浮点型,占用8字节64位,对应封装类Double,默认0.0,取值范围参考IEEE 754规范

boolean

布尔型,对应包装类Boolean,只用两个truefalse两个值

char

字符型, 对应包装类Character, 占用16位, 最大值\uffff即65535,最小值\0000即0

引用数据类型

所有类型的父类都是Object类,这里仅列举几种常用的类型。

String

字符串类型,可以包含任何Unicode字符(UTF-16),a~z、A~Z、0~9和各种转义字符等等,使用双引号标识。

Array

数组类型,可以是任意类型的数据,整型数组、对象数组、字节数组等等,数组就是内存一段连续的内存,通过下标标识每个元素。

类型转换

强制装换

将一种类型强制转换为另外一种类型,如int->short,long->int,int->long,基本数据类型的转换,从大范围转换为小范围出现精度丢失,如long转换为int, 从小范围到范围则不会,如int转换为long,引用数据类型转换,则要考虑转换的对象是不是null

自动装箱

发生在基本数据类型转换为封装类型时,即int可以直接转换为Integer。

自动拆箱

发生在封装类型转换为基本数据类型事,即Integer可以直接装换为int。