Java 中的强制类型转换运算符

2025年5月29日 | 阅读 4 分钟

在 Java 中,强制类型转换运算符(())用于将一种数据类型显式地转换为另一种数据类型,这个过程称为类型转换。它在处理不同数据类型元素时提供了灵活性,能够实现精确的数据转换和更适应性的操作。

语法

其中,TargetType 是我们想要转换的目标数据类型,VariableName 是要转换的值。例如,考虑以下情况。

在这里,第一个语句中的 cost 是整数类型,第二个语句中,我们将 int 类型强制转换为 double。

要阅读更多关于Java 类型转换的内容

强制类型转换运算符示例

示例

编译并运行

输出

21

类型转换的类型

在 Java 中,类型转换有两种类型:

  1. 强制类型转换
  2. 自动类型转换
Cast Operator in Java

缩小类型转换或转换

它将较大的类型转换为较小的类型(例如,double 转 int),但这可能会导致数据丢失。它也称为显式转换。它用于减小较大类型的大小。

缩小类型转换示例

示例:将 double 转换为 int

示例

编译并运行

输出

9.89
9

小数部分 .89 被截断,而不是四舍五入。因此,当强制转换为整数时,9.89 变为 9。

示例:将 int 转换为 byte(溢出)

示例

编译并运行

输出

Original int value: 130
Byte value after casting: -126

扩大类型转换或转换

在扩大转换中,不需要显式的强制类型转换运算符;较小的类型可以无缝地转换为较大的类型(例如,int 到 double)。这由编译器自动完成。发生这种情况是因为没有数据丢失的风险——较大的数据类型可以安全地容纳较小的所有值。它也称为隐式转换

扩大类型转换示例

示例:将 int 转换为 double

示例

编译并运行

输出

10
10.0

在这里,整数 i1 会自动提升为 double,无需显式强制类型转换。

示例:将 byte 转换为 int

示例

编译并运行

输出

Byte value: 25
Int value: 25

扩大类型转换与缩小类型转换

扩大类型转换缩小类型转换
它也称为隐式转换。它也称为显式转换。
它将较小的数据类型转换为较大的数据类型。它将较大的数据类型转换为较小的数据类型。
编译器内部自动执行。程序员使用强制类型转换运算符 () 手动执行。
在此转换中,转换过程中不会发生数据丢失。在此转换中,可能发生数据丢失,尤其是在处理小数或溢出时。
它是安全的,不会抛出异常。它是危险的,必须谨慎处理。
在此转换中,不需要强制类型转换运算符 ()。在此转换中,强制类型转换运算符 () 是强制性的。
它提高了代码的可读性和简洁性。它使代码的可读性降低,并且可能需要验证。
它在常规赋值和算术运算中很常见。它通常用于性能敏感或硬件级别的任务。

强制类型转换运算符选择题

1) 扩大类型转换也称为 ______________。

  1. 短类型转换
  2. 隐式类型转换
  3. 缩小类型转换

答案 2)

解释:扩大类型转换称为隐式类型转换。


2) ______________ 中可能发生数据丢失。

  1. 缩小类型转换
  2. 扩大类型转换
  3. 两者

答案 1)

解释:在缩小类型转换中,尤其是在处理小数或溢出时,可能会发生数据丢失。


3) 选择正确的陈述。

  1. 在扩大类型转换中,转换过程中不会发生数据丢失。
  2. 扩大类型转换由程序员使用强制类型转换运算符手动完成。
  3. 在扩大类型转换中,不需要强制类型转换运算符 ()。
  4. 在缩小类型转换中,不需要强制类型转换运算符 ()。

答案 3)

解释:在扩大类型转换中,不需要强制类型转换运算符 ()。


4) 选择错误的陈述。

  1. 在扩大类型转换中,较小的类型可以无缝地转换为较大的类型。
  2. Required Datatype = (TargetType)Variable 是用于扩大类型转换的语法。
  3. Required Datatype = (TargetType)Variable 是用于缩小类型转换的语法。
  4. 在缩小类型转换中,需要强制类型转换运算符 ()。

答案 2)

解释:在扩大类型转换中,不需要强制类型转换运算符 ()。转换由编译器自动完成。


5) ______________ 可用于将变量从一种数据类型转换为另一种数据类型。

  1. 循环
  2. 递归
  3. 类型转换
  4. 以上全部

答案 3)

解释:类型转换是一种强大而重要的特性,它允许程序员将变量从一种数据类型转换为另一种数据类型。