更确切地说,int是Integer类的一部分(一个精简版或其他东西)还是完全不同的东西?
我知道int是一个值类型而Integer是一个引用类型,但int是否仍然从Object继承?
(我假设在这方面int,long,boolean等都是相似的。为方便起见,只选择了int)
答案 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)
原始类型不是对象,而是直接存储在所需的任何上下文中。如果需要将它们视为对象,则可以将它们装入整数。