Java 中的数据类型分成更简单明了的两大类,即基本类型和引用类型
- 为什么要使用数据类型
使用数据类型的根本原因是项目的需要。对程序员来讲,如果一个变量可以是任何形式的值,那么对该变量的操作就很难定义了,而且也很容易出错。通过引入数据类型,我们可以人为地限制变量的可操作范围,从而降低操作难度、降低出错率、提高计算机内存的使用率。项目中势必要处理整数、小数、英文字符、中文字符等元素,这些元素在计算机中都是用不同类型的数据表示的,每种类型的计算机都会分配指定大小的内存来进行处理。例如,遇到 short 类型,计算机会分配占 2 字节的内存来处理;遇到 int 类型,会分配 4 字节的内存来处理。如果不引入数据类型的概念,要处理整数和英文字符等不同类型的元素,计算机该怎么办?计算机只能设置一块固定大小的内存来处理各种元素,而且假如设置的太小,例如 2 字节,还可能会发生因为太小而不能处理的情况。如果设置的太大,例如 1000 字节,则可能会发生因为太大而过度消耗内存的情况。
注意:实际上,Java 中还存在另外一种基本类型 void,它也有对应的包装类 java.lang.Void,不过我们无法对它进行操作。
- 简单数据类型的取值范围
Java 中的基本数据类型共有三大类,8 个品种,分别是字符类型 char,布尔类型 boolean 以及数值类型 byte、short、int、long、float、double。数值类型又可以分为整数类型 byte、short、int、long 和浮点类型 float、double。Java 中的数值类型不存在无符号的情况,它们的取值范围是固定的,不会随着硬件环境或操作系统的改变而改变。
Java 中的简单数据类型是最简单的,主要由 byte、short、int、long、char、float、double 和 boolean 组成。在 Java 语言中,这 8 种基本类型的具体取值范围如下所示。
byte:8 位,1 字节,最大数据存储量是 255,数值范围是 −128 ~ 127。
short:16 位,2 字节,最大数据存储量是 65536,数值范围是 −32768 ~ 32767。
int:32 位,4 字节,最大数据存储容量是 2^32 - 1,数值范围是 −2^31 ~ 2^31 - 1。
long:64 位,8 字节,最大数据存储容量是 2^64 - 1 数值范围是 −2^63 ~ 2^63 - 1。
float:32 位,4 字节,数值范围是 3.4e−45 ~ 1.4e38,直接赋值时必须在数字后加上 f 或 F。
double:64 位,8 字节,数值范围在 4.9e−324 ~ 1.8e308,赋值时可以加 d 或 D,也可以不加。
boolean:只有 true 和 false 两个取值。
char:16 位,2 字节,存储 Unicode 码,用单引号 ' 赋值。
Java 决定了每种简单类型的大小,这些大小并不随机器结构的变化而变化,这种大小的不可更改正是 Java 程序具有很强移植能力的原因之一。