基本数据类型
整数类型
byte:字节类型
八位,有符号的,以二进制补码表示的整数;
最小值为*-128(-2^7)*;
最大值为127(2^7 - 1); 默认值是0;
byte类型用在大型数组中节约空间,主要代替整数,byte变量占用的空间只用int类型的1/4;
int:整型
三十二位,有符号的,以二进制补码表示的整数;
最小值是*-2,147,483,648(-2^31)*;
最大值是2,147,483,648(2^31 - 1);
默认值是0;
一般的整型变量默认为int类型;
short:短整型
十六位,有符号的,以二进制补码表示的整数;
最小值为*-32,768(-2^15)*;
最大值为32,767(2^15 - 1);
默认值是0;
short类型也可以像byte类型那样节省空间,short类型占用的空间为int类型的1/2;
long:长整型
三十二位,有符号的,以二进制补码表示的整数;
最小值是*-9,223,372,036,854,775,808(-2^63)*;
最大值是9,223,372,036,854,775,807(-2^63 - 1);
默认值是0L;
主要用在需要比较大的整数系统上;
浮点类型
float:单精度浮点类型
单精度,32位符合IEEE754标准的浮点数;可在存储大型浮点数组是节省内存空间;默认值是0.0f;不能用来表示精确的数,如货币;
double:双精度浮点类型
双精度,位符合IEEE754标准的浮点数;浮点数的默认类型为double类型;默认值是0.0d;不能用来表示精确的数,如货币;
布尔类型(默认为false)
truefalse
字符类型
char
是单一的16位Unicode字符最小值是*\u0000*(即为0);最大值是*\uffff*(即为65,535);char类型可以存储任何字符;
基本数据类型转换
自动类型转换(隐式转换)
如果数据相互兼容并且要转换的数据类型的范围大于原数据类型,当发生赋值时,会自动进行数据转换。
数值类型转换:byte >> short >> int >> long >> float >> double
字符型转整型:char >> int
例:
byte b
= 50;
b
= b
* 2;
这里我的理解是:b是byte型,而2是int型,他们两个相乘, 这时操作数b(b * 2 的 b)发生了自动类型转换变成了int型,所以b * 2的结果也是int型,而接受b * 2的变量b还是byte型所以会报错。相当于让一个杯子装一缸水,杯子当然不乐意。
强制类型转换(显性转换)
当不满足自动类型转换的条件时,若想要进行数据类型转换时,则需要使用强制类型转换。
(type
)variableName
还是刚才的题目:
byte b
= 100;
b
= (byte)(b
* 2);
这时的 b * 2 的结果依然是int型,当我们通过 (byte) 进行了强制类型转换,将 32位的int型数据转换为 8位的byte型数据。