int n = 9;
但不是:
Integer n = 9;
你可以这样做:
Integer.parseInt("1");
但不包括:
int.parseInt("1");
int
是一个基本类型。类型为 int
的变量存储所要表示的整数的实际二进制值。因为 int
不是类,所以 int.parseInt("1")
没有意义,它没有任何方法。
Integer
是 Java 语言中的一个类,与其他类没有区别。类型为 Integer
的变量存储对 Integer
对象的引用,就像其他引用(对象)类型一样。 Integer.parseInt("1")
是对类 Integer
中的静态方法 parseInt
的调用 (请注意,此方法实际上返回的是一个 int
而不是 Integer
)。
更具体地说,Integer
是一个具有单个类型为 int
的字段的类。当你需要将 int
表示为其他对象时,例如在泛型类型或需要可空性的情况下使用该类。
请注意,Java 中的每个基本类型都有一个等效的包装类:
byte
对应 Byte
short
对应 Short
int
对应 Integer
long
对应 Long
boolean
对应 Boolean
char
对应 Character
float
对应 Float
double
对应 Double
包装类继承自 Object 类,而基本类型不是。因此,它可以与具有 Object 引用或 Generics 的集合一起使用。
自 Java 5 起,我们拥有自动装箱(autoboxing)功能,原始类型和包装类之间的转换会自动完成。但要注意,这可能会引入微妙的错误和性能问题;显式地进行类型转换永远不会有错。整数 Integer 类型基本上只是原始类型 int 的一个包装器。它允许您使用 Integer 类的所有函数,使您的生活变得更加轻松。
如果您是 Java 新手,您应该学会欣赏 Java 文档。例如,您想要了解有关 Integer 类 的任何信息都可以详细阅读文档。
这是来自 Integer 类文档的直接摘录:
Integer 类将原始类型 int 的值包装在对象中。类型为 Integer 的对象包含一个类型为 int 的字段。
Integer
指的是Java中的包装类型,而int
是一种原始类型。在Java中,除了原始数据类型外,所有其他内容都被实现为对象,这意味着Java是一种高度合格的纯面向对象的编程语言。如果需要,Java中也提供了所有原始类型的包装类型。使用原始类型可以获得一些性能优势,因此只有在必要时才应该使用包装类型。
例如,在您的示例中。
Integer n = 9;
常量9
被自动装箱(自动装箱和拆箱从java 5
开始自动发生)为Integer
,因此您可以使用该语句以及Integer n = new Integer(9)
。这实际上是通过语句Integer.valueOf(9).intValue();
来实现的。
Integer是一个包装类/对象,而int是原始类型。当您想要在集合中存储int值时,这种差异起到了巨大的作用,因为它们只接受对象作为值(直到jdk1.4为止)。从JDK5开始,由于自动装箱,情况完全不同。
Integer.valueOf(i)
或Integer.intValue()
。然而,Collection<int>
仍然无法工作。因此这并不是完全不同的情况,只是使用了一些简写方式。 - yshavit double doubleValue = 156.5d;
Double doubleObject = new Double(doubleValue);
Byte myByteValue = doubleObject.byteValue ();
String myStringValue = doubleObject.toString();
基本数据类型存储在可用的最快速度内存中,而 Helper 类是复杂的并存储在堆内存中。
引用自 "David Gassner" 的 Java Essential Training。
int是一种基本类型,而不是对象。这意味着它没有与其相关的方法。Integer是一个带有方法的对象(如parseInt)。
在较新的Java中,有自动装箱(和拆箱)的功能。这意味着编译器会在需要时插入Integer.valueOf(int)或integer.intValue()。这意味着实际上可以编写以下代码:
Integer n = 9;
这被解释为
Integer n = Integer.valueOf(9);
int
是一种原始类型,表示整数。而Integer
是一个包装了int
的对象。使用Integer
对象可以获得更多的功能,例如转换为十六进制、字符串等。
您还可以使用面向对象编程(OOP)概念来处理Integer
。例如,您可以将Integer
用于泛型(即Collection<Integer>
)。
int
是Java中的一种原始数据类型,而Integer
是引用类型或包装器类型(类)。
在Java 1.5之后,引入了自动装箱和拆箱的概念,您可以像这样初始化int
或Integer
。
int a= 9
Integer a = 9 // both valid After Java 1.5.
Integer.parseInt("1");
而不是 int.parseInt("1");
??
Integer
是在 jdk
库中定义的一个类,而 parseInt()
是属于 Integer
类的一个静态方法。Integer.parseInt("1");
,但是 int
是一种基本类型(类似于关键字),你不能使用 int
来调用 parseInt()
。
Integer n = 9;
。 - Alderath