在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之后