在Java中Integer和int的区别是什么?
例如,为什么您可以这样做:在Java中Integer和int的区别是什么?,java,class,int,Java,Class,Int,例如,为什么您可以这样做: int n = 9; 但不是: Integer n = 9; int.parseInt("1"); 你可以做到: Integer.parseInt("1"); 但不是: Integer n = 9; int.parseInt("1"); 整数几乎只是基本类型int的包装器。它允许您使用Integer类的所有函数,使您的生活更轻松 如果您是Java新手,您应该学习欣赏Java文档。例如,您想知道的关于的任何信息都会详细记录 这是Integer类的直接文档:
int n = 9;
但不是:
Integer n = 9;
int.parseInt("1");
你可以做到:
Integer.parseInt("1");
但不是:
Integer n = 9;
int.parseInt("1");
整数几乎只是基本类型int的包装器。它允许您使用Integer类的所有函数,使您的生活更轻松 如果您是Java新手,您应该学习欣赏Java文档。例如,您想知道的关于的任何信息都会详细记录 这是Integer类的直接文档:
Integer类将基本类型int的值包装在对象中。Integer类型的对象包含一个类型为int的字段。
Integer
指Java中的包装器类型,而int
是基本类型。Java中除了原始数据类型之外的所有内容都是像对象一样实现的,这意味着Java是一种高质量的纯面向对象编程语言。如果需要,所有原语类型在Java中也可以作为包装器类型使用。使用基本类型可以获得一些性能优势,因此只有在必要时才应该使用包装类型
在下面的例子中
Integer n = 9;
常量
9
正在(auto boxing
和unboxing
从Java5
开始自动发生)到Integer
,因此您可以这样使用语句,也可以使用Integer n=new Integer(9)
。这实际上是通过语句Integer.valueOf(9).intValue()实现的
int
是表示整数的基本类型。而Integer
是一个包装int
的对象。Integer
对象提供了更多功能,例如转换为十六进制、字符串等
您还可以将OOP概念与
Integer
一起使用。例如,您可以将Integer用于泛型(即集合
)。int是基本类型,而不是对象。这意味着没有与之关联的方法。Integer是具有方法(如parseInt)的对象
对于较新的java,有自动装箱(和取消装箱)的功能。这意味着编译器将在需要的地方插入Integer.valueOf(int)或Integer.intValue()。这意味着它实际上是可以写的
Integer n = 9;
这被解释为
Integer n = Integer.valueOf(9);
Integer是包装类/对象,int是基元类型。当您希望在集合中存储int值时,这种差异起着巨大的作用,因为它们只接受对象作为值(直到jdk1.4)。JDK5以后的版本由于自动装箱而完全不同。
int
是一种原始类型。int
类型的变量存储要表示的整数的实际二进制值int.parseInt(“1”)
没有意义,因为int
不是类,因此没有任何方法
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
自Java5以来,我们有了自动装箱,原语和包装类之间的转换是自动完成的。但是,要小心,因为这可能会带来微妙的bug和性能问题;关于转换的明确性从来不会有什么坏处。一个int变量包含一个32位有符号整数值。整数(大写为I)包含对(类)类型Integer或null的对象的引用 Java自动在两者之间转换;从整数到整数每当整数对象作为int运算符的参数出现,或被分配给int变量,或int值被分配给整型变量时。这种铸造称为装箱/拆箱 如果显式或隐式取消绑定引用null的整数变量,则会引发NullPointerException
(在上面的文本中,术语“变量”是指局部变量、字段或参数)为了优化Java代码运行时,添加了
int
,包括float
,bool
等。但它们也随附,因此如果需要,您可以将它们转换为标准Java对象,并将其与作为其成员函数的许多实用程序一起使用(例如Integer.parseInt(“1”)
)。在Java int中,int是一种基本数据类型,而Integer是一个助手类,它用于将一种数据类型转换为另一种数据类型
例如:
double doubleValue = 156.5d;
Double doubleObject = new Double(doubleValue);
Byte myByteValue = doubleObject.byteValue ();
String myStringValue = doubleObject.toString();
基本数据类型存储在heap内存中,在Helper类比较复杂的地方,它是最快的可用内存
来自“David Gassner”Java基本培训的引用。
int
是基本数据类型,Integer
是Java中的引用或包装类型(类)
在Java1.5之后