Primitive Data Types in Java

2025年7月14日 | 阅读 7 分钟

Java 中,原始数据类型是预定义的,并指定为保留关键字。它不与其他原始值共享状态。Java 支持以下八种原始数据类型。

阅读更多 Java 数据类型

  1. boolean
  2. byte
  3. int
  4. long
  5. float
  6. double
  7. char
  8. short

1) boolean 数据类型

布尔数据类型可以具有两种值,即truefalse。它用于添加显示 true/false 条件的简单标志。它表示一位信息。它不是特定大小的数据类型。因此,我们无法精确定义其大小。

示例

2) byte 数据类型

这是一个 8 位有符号 2 的补码整数。其范围是 -128 到 127(含)。

  • 它对于在大型数组中节省内存很有用。
  • 它可以代替 int 来阐明我们的代码并明确其限制。
  • 它还可以节省内存,因为它比整数小 4 倍。

示例

3) int 数据类型

int 代表 Integer(整数)。它是一个 32 位有符号二进制补码整数。其范围在 -231 到 231-1 之间,即 -32,768 到 32,767(含)。其默认值为 0。

如果节省内存不是我们的主要目标,那么 int 数据类型 用于定义整数值。

示例

4) long 数据类型

这是一个 64 位二进制补码整数。其值介于 -263 到 263-1(含)之间。它用于 int 数据类型无法处理的较大值。其默认值为 0L。

示例

5) float 数据类型

float 数据类型 用于声明浮点值(小数)。它是一种单精度 32 位 IEEE 754 浮点数据类型。其范围是无限的。声明浮点数时,必须在值后面加上 f 或 F。

它对于在大型浮点数数组中节省内存很有用。建议在大型数组中存储浮点数时使用 float 数据类型而不是 double,并且不要将其用于货币等精确值。

示例

注意:科学计数法也可以用来表示带有 'e' 次幂的科学计数法,其中 e 表示 10 的幂。例如,float f1= 25e2f; double d1= 15E2d; 等。

6) double 数据类型

double 数据类型 也用于浮点数(小数)。它与 float 数据类型类似。通常,它用于十进制值。与 float 数据类型一样,其范围是无限的,不能用于货币等精确值。它在内存中占用 64 位。

double 数据类型的默认值为 0.0d。声明 double 类型的值时,必须在值后面加上 d。

示例

7) char 数据类型

char 数据类型 用于声明字符类型。它是一个 16 位 Unicode 字符,范围从 0 到 65,535(含)。

声明字符变量时,其值必须用单引号('')括起来。

示例

注意:ASCII 字符值也可用于显示字符。

8) short 数据类型

short 数据类型 也用于存储整数值。它是一个 16 位有符号 2 的补码,范围从 -32,768 到 32,767(含)。它也像 byte 数据类型一样用于节省内存。

当内存节省至关重要时,建议在大型数组中使用 short 数据类型。

原始数据类型的默认值和大小

在 Java 中,声明时不必赋值。每种数据类型都有一些默认值。如果我们没有给数据类型赋值,JVM 会自动为其分配默认值。

这些值通常是 null 或 0(零),具体取决于数据类型。但是,不建议将变量保留为其默认值。如果您声明了变量,则应为其初始化一个值。否则,请勿不必要地声明它。

数据类型大小默认值范围/描述
boolean1 位false仅真或假
byte8 位0非常小的整数 (-128 至 127)
int32 位0标准整数 (-2³¹ 至 2³¹-1)
long64 位0L大整数 (-2⁶³ 至 2⁶³-1)
float32 位0.0f小数(单精度)
double64 位0.0d小数(双精度)
char16 位'\u0000'单个 Unicode 字符
short16 位0小的整数 (-32,768 至 32,767)

原始数据类型关键要点

为什么需要原始数据类型?

所有基本数据在 Java 中都存储为这些原始类型。因为计算机寄存器本身就是对象,它们存储数据时不会花费太多时间。Java 使用变量来标记简单的东西,如数字、字母和布尔条件。

如果我们需要在处理大量问题的范围中处理数据或对大量数据进行数学运算,那么使用基本类型是最好的。例如,用 int 替换 Integer 将节省内存,并避免创建和销毁对象的耗时耗力。

原始数据类型与非原始数据类型

Java 数据类型只有两个主要类别:原始类型和非原始类型

  • int、byte、short、long、float、double、char 和 boolean 都是 Java 默认包含的原始类型。这些变量用于保存值。
  • 非原始类型指的是对象组,如 String、Array 或各种自定义类。它们保存信息实际存储位置的内存地址。

了解这种区别是必要的,因为原始类型性能更好,占用的内存更少,并且可以通过不使用方法或处理 null 来节省空间,而对象提供了更大的范围,并且可以参与方法调用。

原始类型的内存消耗

这在内存受限的环境中或处理大量数据时(如科学计算或游戏引擎)特别有用。

原始类型的包装类

所有原始类型的包装类,如 Integer、Double、Character 等,都属于 java.lang 包。

多亏了包装类,原始类型可以在需要对象的场合使用,例如在列表(List<Integer>)中、同步以及重载。它们还包含实用方法。例如,

使用包装类可以弥合简单数据与 Java 面向对象特性之间的差距。

自动装箱和拆箱

自动装箱是将原始类型自动转换为其对应的包装类。拆箱则相反。

此功能提高了代码的可读性,并简化了与集合的交互,但开发人员必须意识到隐藏的对象创建会带来的性能成本。

类型转换和转换

Java 支持两种原始类型之间的类型转换:

  • 自动类型提升(隐式):自动将较小类型转换为较大类型。
  • 强制类型转换(显式):将较大类型转换为较小类型,但可能导致数据丢失。

在进行强制类型转换时,应始终谨慎,特别是对于 float、double 和 long,它们的值或精度可能会被截断。

最佳实践

  • 除非预期值范围很大,否则优先使用 int 而不是 long。
  • 仅在处理小数时才使用 float 或 double。
  • 在控制结构中使用布尔值表示标志或开关。
  • 在循环和计算中,优先使用原始类型而不是包装类,以避免不必要的对象创建。

原始类型的局限性

尽管原始类型速度很快,但它们也有局限性:

  • 它不能为 null(不支持缺失值)。
  • 它不能调用方法或被继承。
  • 它在泛型集合(如 List<int>)中无用。

对于更复杂的用例,必须使用包装类或替代逻辑(如可选字段)。

数组中的原始类型

当性能和代码内存占用很重要时,请使用 int[] 或 char[] 而不是 Integer[] 或 Character[] 数组。例如,

大多数算法、模拟和实时系统都依赖于数组来实现其确定性和高效性。

要记住的重要事项

  1. Java 有八种原始数据类型:byte、short、int、long、float、double、char 和 boolean。
  2. 原始数据类型由 Java 语言预定义并使用保留关键字。
  3. 原始类型不是对象,不共享状态。
  4. int、float 和 double 在日常编程中最常用。
  5. 浮点值必须以 f 或 F 结尾,双精度值必须以 d 或 D 结尾。
  6. 在需要内存优化时使用 byte、short 和 float。
  7. 原始类型比非原始类型更快、更高效,因为它们存储实际值而不是引用。

结论

Java 中数据存储和处理所需的一切都始于原始数据类型。其中包括 boolean、byte、short、int、long、float、double 和 char,它们都用于正确地保存特定的值类型。正确使用 Java 中的数据类型有助于保持性能并有效地将重要数据保存在内存中。

简单、轻量且快速的原始类型通过仅保存基本信息而不是引用对象来工作。如果正确使用数据类型,您的代码将保持整洁且易于理解。只有当 Java 程序员掌握了这些概念,才能构建可靠且高质量的应用程序。

原始数据类型选择题

1. 下列哪一项不是原始数据类型?

  1. int
  2. float
  3. Array
  4. Boolean
 

答案:C)

解释:非原始类型指的是对象组,如 String、Array 或各种自定义类。


2. char 数据类型的默认值是什么?

  1. \u0000
  2. \u000
  3. /u0000
  4. \u000
 

答案:A)

解释:char 数据类型是单个 Unicode 字符。其默认值为 \u0000。


3. 定义 float 值的正确方法是?

  1. 2
  2. 2f
  3. 2
  4. f2
 

答案:B)

解释:声明浮点数时,必须添加后缀 f 或 F。


4. byte 数据类型的范围是___________。

  1. -32,768 至 32,767
  2. -2⁶³ 至 2⁶³-1
  3. -2³¹ 至 2³¹-1
  4. -128 至 127
 

答案:D)

解释:byte 数据类型是非常小的整数。其范围是 -127 至 128。


5. Java 中有多少种原始数据类型?

  1. 9
  2. 10
  3. 8
  4. 6
 

答案:C)

解释:Java 有八种原始数据类型:byte、short、int、long、float、double、char 和 boolean。


下一主题图问题-in-java