基本数据类型也称简单数据类型,java语言共有8种数据类型(按精度由低到高):byte, short, char, int, long, float, double,
byte
使用byte关键字来声明byte型变量:
byte x = -12, Tom = 28, 漂亮 = 98;
注:内存分配给byte变量占1个字节,共8位,因此byte的取值范围位-2^7 ~ 2^7-1。
short
使用关键字short来声明short变量:
short x = 12, y = 1234;
注:内存分配给short变量2个字节,共16位,因此short的取值范围为-2^15 ~ 2^15-1。
char
使用关键字short来声明short变量:
char ch = 'a', home = '家';
注:内存分配给short变量2个字节,共16位,最高位不是符号位,因此short的取值范围为0~65535。
对于ch = ‘a’;内存中存放的是97,97是字符a在Unicode表中的排序位置,因此ch = ‘a’; 又可以写成ch = ‘97’;
int
使用关键字int来声明int变量:
int i = 7;
注:内存中为int型变量分配4个字节,共32位。可存储-2^7 ~ 2^7-1.
对于 int i = 7; 内存中的存储状态:000000000 00000000 00000000 00000111
其中的最高位为符号位(0代表负数,后面的数为次负数去掉符号位的补码[补码=反码+1];1代表正数,后面是这个数的原码),
float
使用关键字float声明:
float x = 23.98f, TOM = 23.433f;
注:float占四字节,共32位。当数字较长时,存储时保留8位有效数字,实际精度取决于具体数值。
double
使用关键字double声明变量:
double height = 1233.313, width = 3.2342342423D;
存储double变量时内存为之分配8个字节,占32位。保留16位有效数字。
long
使用关键字int来声明int变量:
long i = 787L;
注:内存中为int型变量分配8个字节,共64位。
数据类型转换
隐式类型转换:级别低的变量向级别高的类型转换。
int a = 70;
float y;
y = x;
则输出的y的值:70.0
显示类型转换:级别高的变量向级别低的类型转换。
int x = (int)49.78;
long y = (long)87387.32F;
int z = (int)1999L;
则输出的x = 49; y=87387; z=1999;
注:强制转换可能导致精度的损失。
一个常见的错误是把double型附给float型没有进行强制转换,如:float x=67.8;
将报错:“possible loss of precision”;
正确做法:float x=67.8F; 或 float x=(float)67.8;