在Java中是int对象吗?
更确切地说,int是Integer类的一部分(一个精简版或其他东西)还是完全不同的东西?
我知道int是一个值类型而Integer是一个引用类型,但int是否仍然从Objectinheritance?
(我假设在这方面int,long,boolean等都是相似的。为方便起见,只选择了int)
-
Java中的基本类型不是对象,也不是从Objectinheritance。
-
自Java 1.5引入以来,允许在int和Integer(以及其他类型)之间进行自动装箱。
-
因为int不是不能用作generics类型参数的对象,例如
list
的T
list
从“原始数据类型” :“原始类型是语言中内置的特殊数据类型;它们不是从类创建的对象。” 反过来,这意味着不, int
不会以任何方式从java.lang.Objectinheritance,因为只有“从类创建的对象”才能这样做。 考虑:
int x = 5;
为了让名为x
的东西inheritance自Object,那个东西需要有一个类型。 请注意,我区分x
本身和它命名的东西。 x
有一个类型,它是int
,但名为x
的东西是值5,它本身没有类型。 它只是一个表示整数值“5”的位序列。 相反,考虑:
java.lang.Number y = new java.lang.Integer(5);
在这种情况下, y
的类型为Number,而名为y
的东西的类型为Integer。 名为y
的东西是一个对象。 它具有不同的类型,与y
或其他任何东西无关。
如果你谈论整数:
Integer类在对象中包装基本类型int的值。 Integer类型的对象包含一个类型为int的字段。
此外,这个类提供了几种方法,用于将int转换为String,将String转换为int,以及在处理int时有用的其他常量和方法。
int不是对象,它是一种原始类型。
原始类型不是对象,而是直接存储在所需的任何上下文中。 如果需要将它们视为对象,则可以将它们装入整数。