为什么 java 有 int 和 int 整数数据类型,我可以将数据从一个移动到另一个吗?



可能的重复项:
为什么整数和整数可以互换使用?

我试图了解这些之间的区别。例如,我可以将某些内容声明为 int,然后将其与我放入整数中的数字进行比较吗?还有为什么Java有这两个。为什么不把这些结合起来呢?

有人可以帮助我展示一个 3-4 行代码示例来说明每个代码是如何使用的吗?

int基元不是对象。数组允许基元:

int[] array = new int[10];

但泛型不会:

List<int>  //won't compile

这是现在使用包装类的主要原因。您也可以在预期Object的地方使用Integer。最后,如果要实现可选性Integer可以具有null值。

请注意,有一些语言处理了这种不一致。在 c# 中,你有值类型,在 scala 中,Int类从扩展AnyVal而普通对象扩展AnyRef(这两个对象都从 Any 扩展)。

参见 Java 中的类型装箱。 有人说要从Java 9开始使它们完全相同。

  • 基元int类型和整数类是不同的类型。不能直接将基元intInteger对象进行比较。您需要从Integer对象获取intValue
  • 是的,这是必需的功能。Java 和其他一些语言为基元类型提供了这些类型的对象包装器,以处理需要对象的情况。例如,集合类需要对象,不能对它们使用基元int。因此,您将需要一个Integer包装器。
Integer 是一个

对象,而 int 是一个基元类型。从根本上说,对象是通过引用传递的,而基元是通过值传递的。它们在分配位置方面也有所不同。

就Java而言,对象具有函数。调用类似以下内容:

Integer.toString()

很好,但是:

int.toString()

莫。

int是一个

基元,Integer是一个类。你不能说ArrayList<int>但你可以说ArrayList<Integer>.

Java 中的所有原始类型都有它们的类对应物(从 Object 衍生的类),例如布尔值、Long 等。它被称为"拳击"。解释参见示例 这里.

最新更新