题目
介绍下 Java 中的数据类型及所占字节和取值范围
解释
类似问题如 “boolean 类型是否占固定数量字节?”
答案
@[toc] --- Java数据类型包括基本数据类型和引用数据类型两大类 ## 基本数据类型 整数类型: - `byte`,1 字节(8 bit),数据范围是 $[-2^{7},2^{7}-1]$ - `short`,2 字节(16 bit),数据范围是 $[-2^{15},2^{15}-1]$ - `int`,4 字节(32 bit),数据范围是 $[-2^{31},2^{31}-1]$ - `long`,8 字节(64 bit),数据范围是 $[-2^{63},2^{63}-1]$ 浮点数类型: - `float`,4 字节(32 bit) - `double`,8 字节(64 bit) 布尔类型: - `boolean`,如果 boolean 是单独使用(在编译之后使用 Java 虚拟机中的 int 数据类型来代替),则 占 4 个字节。如果 boolean 是以 “boolean数组” 的形式使用,则占 1 个字节(不过 Java 规范对 boolean 占用的内存空间没有明确的规定,不同的 JVM 有不同的实现机制) 字符类型: - `char`,2 字节(16 bit) ## 引用类型 引用类型就是对一个对象的引用,根据引用对象类型的不同,可以将引用类型分为 3 类,即数组、类、 接口类型。<u>引用类型本质上就是通过指针,指向堆中对象所持有的内存空间,只是 Java 语言不再沿用指针这个说法而已</u>