Java提供了8种原始的数据类型:
byte、short、int、long、float、double、char、boolean 这些类型不是对象,是Java中不同于类的特殊类型,声明后会分配在栈上。 除了基本类型外,其他的都属于引用类型,包括类、接口、数组等,它以特殊的方式指向对象实体,它们声明时不会分配内存地址,只是存储了一个地址而已。
数据类型 | 大小 | 范围 | 默认值 | 包装类 |
---|---|---|---|---|
byte(字节) | 8 | -128 ~ 127 | 0 | Byte |
short(短整型) | 16 | -32768 ~ 32768 | 0 | Short |
int(整型) | 32 | -2147483648~2147483648 | 0 | Integer |
long(长整型) | 64 | -9233372036854477808~9233372036854477808 | 0 | Long |
float(浮点型) | 32 | (32位IEEE754单精度范围)-3.40292347E+38~3.40292347E+38 | 0.0f | Float |
double(双精度) | 64 | -1.79769313486231570E+308~1.79769313486231570E+308 | 0.0d | Double |
char(字符型) | 16 | ‘\u0000 ~ u\ffff ’ | ‘\u0000’ | Character |
boolean(布尔型) | 1 | true/false | false | Boolean |
封装类型与原始类型的不同点:
- 原始数据类型在传递参数时都是按值传递,而封装类按引用传递
- 默认值不同,对象的默认值为null,原始类型变量的默认值取决于他们的类型。
在Java中,小数默认是以double存储的,整数是以int存储的。