题目
介绍下 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>
