Java将数据类型分为两大类
(1)基本数据类型:由Java语言定义,不可以在划分,基本数据类型的数据占用内存的大小固定,在内存中存入的是数值本身
(2)引用数据类型:存放的是引用数据的地址,并不是数据本身
1.byte
字节型byte:占用1个字节(1个字节8位),取值范围 -128(-2^7)~ 127(2^7-1),默认值为0(只有全局变量有默认值,局部变量必须要赋值);
2.short
短整型sort:占用2个字节,取值范围 (-2^15)~(2^15 - 1),默认值为0;
3.int(整数默认的类型)
整型int:占用4个字节,取值范围(-2^31)~(2^31 - 1),默认值为0;
4.long
长整型long:占用8个字节、取值范围 (-2^63)~ (2^63 -1),默认值为0L;
5.float
单精度float:占用4个字节,默认值为0.0f(后缀有f),浮点数不能用来表示精确的值:若货币
6.double(浮点数默认的类型)
双精度double:占用8个字节,默认值为0.0d(后缀可有可无),也不能表示精确的值
7.boolean
布尔型boolean:取值只有两个true和false,默认值为false
8.char
字符类型char:存放的是Unicode字符,可以存储任何类型
引用数据类型
引用数据类型有点像C中的指针,引用类型指向一个对象,指向对象的变量是引用类型,对象(new HelloWorld())、数组(int arr[])都是引用数据,所有的引用数据类型的默认值为NULL
类型转换
(1)自动转换
两个条件:转换前后的数据类型要兼容、转换后的类型要比转换前的范围大,例如int转化为long型,两者都是整数型,且long型表示范围比int大,反之long不能自动转化为int型
(2)强制转换
强制转化也需要满足转换前的数据类型与转换后的数据类型兼容这一条件,方法:(要转换的数据类型)变量名称
long correct2=(long)max+1; //int型和long型相加结果为long型不溢出