基本数据类型:
整数、浮点、字符、布尔web
引用数据类型:
数组、类、接口数组
注:void也是一种数据类型,这里不将它归类。编码
四类:整数、浮点、字符、布尔spa
八种:byte,short,int,long,float,double,char,booleancode
他们各自有本身的包装类,使得基本数据类型变成引用数据类型,拿到各自的对象。orm
基本数据类型对象 |
内存占用接口 |
取值范围内存 |
包装类ci |
byte |
1 字节(8 位) |
-128 ~ 127(2^7 ~ 2^7-1) |
Byte |
short |
2 字节(16 位) |
-2^15 ~ 2^15-1 |
Short |
int |
4 字节(32 位) |
-2^31 ~ 2^31-1 |
Integer |
long |
8 字节(64 位) |
-2^63 ~ 2^63-1 |
Long |
boolean |
1 字节(8 位) |
true 或 false |
Boolean |
char |
2 字节(16 位) |
Unicode 0 ~ Unicode 2^16-1 |
Character |
float |
4 字节(32 位) |
-3.403E38~3.403E38 |
Float |
double |
8 字节(64 位) |
-1.798E308~1.798E308 |
Double |
注:
1 byte = 8 bits(1字节占8位,1位表示1个二进制码0或1),1 kb = 1024 bytes
对于字符,Java采用双字节Unicode编码。
对于整数类型(byte、short、int、long),有一位符号位占位,而char没有; 因此在计算取值范围时,整数类型指数须要减1; 而对于它们的最大值,整数和char须要减1,是由于要算上0; 算上0的话,它们所能表示的整数的个数就是2^n个(n表示占位)。
BigInteger类和 BigDecimal类用于高精度整数和浮点数,他们不属于基本数据类型。
String类不属于基本数据类型,它是一个类,属于引用类型。