一、数据类型
四类八种基本数据类型:
Java中的默认类型:整数类型是
int
、浮点类型是double
。
-
整数常量值默认都是int类型,占用4个字节空间。
实际上程序运行期间byte、short、char、boolean实际都是占用4个字节内存空间,
但在逻辑上,byte只有低8位有效空间。short只有低16位有效空间。
所以,语法上可以直接把一个byte范围内的整数常量值直接赋给byte类型变量。short同理。byte b = 10;整数常量值后加后缀L表示long类型数值,如果整数常量值的范围超过int范围必须加后缀L才能正确表示为long数值,否则编译报错。
-
小数常量值默认都是double类型,只有在其后F,才表示是float类型数值。
-
可以在整数或小数值后加D或F分别表示double类型数值和float类型数值。
二、基本数据类型的存储范围
- 整型系列
//(1)byte:字节类型
byte b = 10;
byte b1 = 128;//128超过了byte类型范围,编译失败: 不兼容的类型: 从int转换到byte可能会有损失
//(2)short:短整型类型
short s = 10;
short s1 = 32768;//32768超过了short类型范围,编译失败: 不兼容的类型: 从int转换到short可能会有损失
//(3)int:整型
int i = 10;
int i1 = 12345678900;//12345678900超过int类型范围,编译错误: 过大的整数: 12345678900
//(4)long:长整型
long j = 10;//这里10会自动转换为long类型,后面讲
long j1 = 10L;//10L直接表示为long类型数值
long j1 = 12345678900L;//注意:如果要表示某个超过int范围的常量整数它是long类型,那么需要在数字后面加L - 浮点型系列(小数)
//(1)float:单精度浮点型
// 精度:科学记数法的小数点后6~7位
float f = 12.3F;//右边如果赋值小数常量值,那么必须加F或f,否则12.3表示double类型常量值
//(2)double:双精度浮点型
//精度:科学记数法的小数点后15~16位
double d = 12.3;//默认12.3表示double类型常量值,
double d = 12.3D;//也可以加后缀D表示double型常量值,以增加区分 - 单字符类型:char
//char:字符类型,占用2个字节内存,底层使用数值0~65535表示不同字符
char ch = ‘a’;//字符类型数据值必须使用单引号 - 布尔类型
//boolean:布尔类型,能存储的值只能是true或false
boolean b = true;//注意布尔值不要加引号
boolean c = false;
虽然计算机底层使用0和1表示false和true,但是在代码中不能给boolean类型的变量赋值0和1,只能赋值false和true