Java教程-详解 Java 数据类型

在 Java 中,数据类型用于指定变量可以存储的不同大小和值的范围。Java 中有两种主要的数据类型:
- 原始数据类型(Primitive Data Types):原始数据类型是 Java 中的基本数据类型,它们包括 boolean、char、byte、short、int、long、float 和 double。这些类型用于存储基本的数据值,如整数、小数、字符和布尔值。
- 非原始数据类型(Non-Primitive Data Types):非原始数据类型是指类、接口和数组等复杂的数据类型。这些类型是基于原始数据类型构建的,可以用于存储更复杂的数据结构,如对象、集合和自定义数据类型。非原始数据类型不直接存储数据,而是存储对数据的引用。
Java 原始数据类型
在 Java 语言中,原始数据类型是数据操作的基础。它们是 Java 中可用的最基本的数据类型。
Java 是一种静态类型的编程语言,这意味着所有变量在使用之前必须进行声明。因此,我们需要指定变量的类型和名称。
Java 的原始数据类型共有 8 种:
- 布尔类型(boolean)
- 字节类型(byte)
- 字符类型(char)
- 短整型(short)
- 整型(int)
- 长整型(long)
- 单精度浮点型(float)
- 双精度浮点型(double)
数据类型 | 默认值 | 默认尺寸 |
---|---|---|
布尔值 | 错误的 | 1位 |
字符 | 'u0000' | 2字节 |
字节 | 0 | 1字节 |
短的 | 0 | 2字节 |
整数 | 0 | 4字节 |
长 | 0升 | 8字节 |
漂浮 | 0.0f | 4字节 |
双倍的 | 0.0d | 8字节 |
布尔数据类型
Boolean 数据类型仅用于存储两个可能的值:true 和 false。此数据类型用于跟踪真/假条件的简单标志。
Boolean 数据类型指定一位信息,但无法精确定义其“大小”。
例子:
Boolean one = false
字节数据类型
字节数据类型是原始数据类型的一种。它是一个8位有符号二进制补码整数,范围从-128到127(包括边界值)。它的最小值是-128,最大值是127。字节数据类型的默认值是0。
字节数据类型通常在需要节省内存的大型数组中使用,以节省空间。相比于整数数据类型,字节数据类型的大小只有其四分之一,因此在某些情况下可以用它来替代整数数据类型,从而节省内存。
例子:
byte a = 10, byte b = -20
短数据类型
short 数据类型是 16 位有符号二进制补码整数。它的取值范围在 -32,768 到 32,767(含)之间。它的最小值为-32,768,最大值为32,767。它的默认值为 0。
short 数据类型也可以像 byte 数据类型一样用于节省内存。短数据类型比整数小 2 倍。
例子:
short s = 10000, short r = -5000
整型数据类型
int数据类型是一个32位有符号二进制补码整数。它的取值范围介于-2,147,483,648 (-2^31)到2,147,483,647 (2^31 - 1)之间(包括边界值)。它的最小值是-2,147,483,648,最大值是2,147,483,647。int数据类型的默认值是0。
在大多数情况下,如果没有内存限制,int数据类型通常被用作整数值的默认数据类型。它提供了足够的范围和精度,适用于大多数整数计算。
例子:
int a = 100000, int b = -200000
长数据类型
long 数据类型是 64 位二进制补码整数。它的取值范围在-9,223,372,036,854,775,808(-2^63)到9,223,372,036,854,775,807(2^63 -1)(含)之间。它的最小值为 - 9,223,372,036,854,775,808,最大值为 9,223,372,036,854,775,807。它的默认值为 0。当您需要的值范围超过 int 提供的范围时,使用 long 数据类型。
例子:
long a = 100000L, long b = -200000L
浮点数据类型
float 数据类型是单精度 32 位 IEEE 754 浮点数。其取值范围是无限的。如果需要在大型浮点数数组中节省内存,建议使用浮点数(而不是双精度数)。float 数据类型不应该用于精确值,例如货币。其默认值为 0.0F。
例子:
float f1 = 234.5f
双数据类型
双精度数据类型是双精度的64位IEEE 754浮点数。它的取值范围是无限的,可以表示非常大或非常小的数值。double数据类型通常用于存储和计算需要更高精度的十进制值,类似于float数据类型。然而,双精度数据类型不应该用于处理要求精确值的情况,比如货币计算,因为浮点数的精度有限。
double数据类型的默认值是0.0d,表示一个零值的双精度浮点数。在大多数情况下,当没有指定具体值时,变量将被初始化为默认值。
例子:
double d1 = 12.3
字符数据类型
char 数据类型是单个 16 位 Unicode 字符。它的取值范围在'u0000'(或0)到'uffff'(或65,535)之间。char数据类型用于存储字符。
例子:
char letterA = 'A'
为什么 char 在 java 中使用 2 个字节,什么是 u0000 ?
这是因为java使用的是Unicode系统而不是ASCII码系统。u0000 是 Unicode 系统的最低范围。