在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是自动装箱的,从Java5到Integer自动取消装箱,因此您可以这样使用语句,也可以使用Integer n=new Integer9。这实际上是通过语句Integer.valueOf9.intValue实现的

int是表示整数的基元类型。而Integer是一个包装int的对象。Integer对象提供了更多功能,例如转换为十六进制、字符串等


您还可以将OOP概念与Integer一起使用。例如,您可以将Integer用于泛型,即Collection。

int是基本类型,而不是对象。这意味着没有与之关联的方法。Integer是具有parseInt等方法的对象

对于较新的java,有自动装箱和取消装箱的功能。这意味着编译器将在需要时插入Integer.valueOfint或Integer.intValue。这意味着它实际上是可以写的

Integer n = 9;
这被解释为

Integer n = Integer.valueOf(9);

Integer是包装类/对象,int是基元类型。当您希望在集合中存储int值时,这种差异起着巨大的作用,因为在jdk1.4之前,int值只接受对象作为值。JDK5以后的版本由于自动装箱而完全不同。

int是一种原始类型。int类型的变量存储要表示的整数的实际二进制值。parseInt1没有意义,因为int不是一个类,因此没有任何方法

Integer是一个类,与Java语言中的任何其他类都没有区别。整型变量存储对整型对象的引用,就像任何其他引用对象类型一样。Integer.parseInt1是从Integer类调用静态方法parseInt请注意,此方法实际上返回的是int而不是整数

更具体地说,Integer是一个只有一个int类型字段的类。该类用于需要像对待任何其他对象一样对待int的情况,例如在泛型类型或需要可空性的情况下

请注意,Java中的每个基元类型都有一个等价的包装器类:

字节有字节 短有短 int有整数 很久很久了 布尔有布尔 字符具有字符 浮子有浮子 双有双 包装器类继承自对象类,而基元类不继承。因此,它可以在具有对象引用或泛型的集合中使用


自Java5以来,我们有了自动装箱,原语和包装类之间的转换是自动完成的。但是,要小心,因为这可能会带来微妙的bug和性能问题;关于转换的明确性从来不会有什么坏处。

一个int变量包含一个32位有符号整数值。大写字母为I的整数包含对类类型为Integer的对象或null的引用

Java自动在两者之间转换;从整数到整数每当整数对象作为int运算符的参数出现,或被分配给int变量,或int值被分配给整型变量时。这种铸造称为装箱/拆箱

如果显式或隐式取消绑定引用null的整数变量,则会引发NullPointerException


在上面的文本中,术语变量是指局部变量、字段或参数

为了优化Java代码运行时,添加了int,包括float,bool等,但它们也随附于此,因此如果需要,您可以将它们转换为标准Java对象,并将其与Integer.parseInt1等作为其成员函数的许多实用程序一起使用。

在Java int中,Integer是一种基本数据类型,而Integer是一个辅助类,用于将一种数据类型转换为另一种数据类型

例如:

         double doubleValue = 156.5d;
         Double doubleObject  = new Double(doubleValue);
         Byte myByteValue = doubleObject.byteValue ();
         String myStringValue = doubleObject.toString();
基本数据类型存储在heap内存中,在Helper类比较复杂的地方,它是最快的可用内存

参考的 来自David Gassner Java Essential Training。

int是一种基本数据类型,而Integer是Java中的引用或包装类型类

在Java1.5引入了自动装箱和取消装箱的概念之后,您可以像这样初始化int或Integer

int a= 9
Integer a = 9 // both valid After Java 1.5.
为什么是Integer.parseInt1;但不是int.parseInt1

Integer是jdk库中定义的类,parseInt是属于Integer类的静态方法

因此,Integer.parseInt1;在java中是可能的。但int是基本类型,就像java中的关键字一样。因此,不能用int调用parseInt。

这是从

Java使用原语类型,也称为简单类型, 例如int或double,以保存 语言基本类型,而不是对象,用于这些 为了性能的需要,数量是有限的。将对象用于这些值 即使是最简单的 计算。因此,基本类型不是对象的一部分 层次结构,并且它们不继承对象

尽管表现出色 原语类型提供的好处,有时您会 需要对象表示。例如,不能传递基本体 通过引用方法键入。此外,许多标准数据 Java实现的结构对对象进行操作,这意味着 不能使用这些特定于对象的数据结构来存储基元类型。到 处理这些和其他情况,Java提供类型包装, 它们是封装对象中的基元类型的类

包装类与Java的自动装箱直接相关 特色类型包装器有Double、Float、Long、Integer、Short、, 字节、字符和布尔值。这些类提供了广泛的 方法,使您能够将基元类型完全集成到 Java的对象层次结构


integer是类,int是一个基本类型你可以做整数n=9;由于自动装箱,除非您使用的是非常旧的Java版本,否则这有点忽略了要点。例如,由于Integer是一个类,它可以存储在不同于基元类型的容器中;只是自动装箱让编译器自动为您调用Integer.valueOfi或Integer.intValue。收集仍然不起作用。所以这并不是一个完全不同的故事——这是同一个故事,只是有点简略。同意。抱歉,我的措辞可能没有反映这一点。@VSG24…但这是一个Java问题,这是一个Java答案。C在这里是完全不相关的。很好的例子可能是:编译错误:列表有效:列表附加知识总是有益的我喜欢学习新东西,特别是当知识与当前主题相关时。谢谢你,瓦希德。