是int中的Java对象吗?

时间:2011-10-09 00:15:04

标签: java inheritance primitive

更确切地说,int是Integer类的一部分(一个精简版或其他东西)还是完全不同的东西?

我知道int是一个值类型而Integer是一个引用类型,但int是否仍然从Object继承?

(我假设在这方面int,long,boolean等都是相似的。为方便起见,只选择了int)

4 个答案:

答案 0 :(得分:17)

来自"Primitive Data Types":“原始类型是语言中内置的特殊数据类型;它们不是从类创建的对象。”反过来,这意味着不,int不以任何方式从java.lang.Object继承,因为只有“从类创建的对象”才能这样做。考虑:

int x = 5;

为了让名为x的东西继承自Object,该东西需要有一个类型。请注意,我区分x本身和它命名的东西。 x有一个类型int,但名为x的东西是值5,它本身没有类型。它只是一个表示整数值“5”的位序列。相反,请考虑:

java.lang.Number y = new java.lang.Integer(5);

在这种情况下,y的类型为Number,名为y的东西的类型为Integer。名为y的东西是一个对象。它具有不同的类型,与y或其他任何内容无关。

答案 1 :(得分:16)

  • Java中的基本类型不是对象,也不是从Object继承。

  • 由于引入了Java 1.5,因此允许在int和Integer(以及其他类型)之间进行自动装箱。

  • 因为int不是不能用作泛型类型参数的对象,例如T

    中的list<T>

答案 2 :(得分:1)

如果你谈论整数:

Integer类在对象中包装基本类型int的值。 Integer类型的对象包含一个类型为int的字段。

此外,这个类提供了几种方法,用于将int转换为String,将String转换为int,以及在处理int时有用的其他常量和方法。

int不是对象,它是一种原始类型。

答案 3 :(得分:0)

原始类型不是对象,而是直接存储在所需的任何上下文中。如果需要将它们视为对象,则可以将它们装入整数。