int
和Integer
之间有什么区别?是的,一个是primitive
,另一个是wrapper
,这是正确使用它们的情况。
还有什么区别:
int i=0;
++i
and
i++
答案 0 :(得分:6)
第1部分
一个例子..您可以使用Integer
作为HashMap
的键,但不能使用int。因为需要Object
。
因此,当您需要int
值作为对象时,您需要使用Integer
类。
第2部分
++我是预增量 i ++是增量后的
例如
i = 0;
System.out.println(i++) //will print 0 then the i will be 1.
和
i = 0;
System.out.println(++i) // here i wil be incremented first then print 1.
答案 1 :(得分:3)
Integer
是int
的包装类,它是一种原始数据类型。当Integer
无法满足时使用int
。例如:在泛型中,泛型类,方法或变量的类型不能接受原始数据类型。在这种情况下,Integer
来救援。
List<int> list; //Doesn't compiles
List<Integer> list; // Compiles
此外Integer
附带了大量静态方法,例如toBinaryString
,toHexString
,numberOfLeadingZeros
等,这些方法非常方便。
答案 2 :(得分:3)
如上所述 Integer是一个对象,而int是一个原语。因此,您可以对Integer及其Set或List进行空引用。你不能用int
做到这一点当我必须在数据库中存储int值时,我发现这个空引用非常有用。我使用Integer时可以存储空值。但是当我使用int时不能这样做。
答案 3 :(得分:1)
Integer
是一个对象,而int
是一个原语。因此,您可以对Integer
以及Set
或List
提供空引用。你不能用int
。
答案 4 :(得分:1)
基本解释是int
是原始数据类型,字面上只是存储在内存中的值。 Integer
是一个Java对象,它在一个Class中包含int
,其中包含许多很好/有用的方法,可以调用它们来处理隐藏在其中的后备int
。这与大多数原始数据类型相同,例如boolean
和Boolean
,char
和Character
等。这被称为Boxing
一个原始的。拆箱是相反的,采取一个对象并提取支持原始。
以下是一个示例,说明如何使用Integer
将String
转换为int
(加框为Integer
)
String someString = "10";
Integer intObj = Integer.parseInt(someString);
System.out.println(intObj.toString());
您会发现某些数据类型的方法比其他方法更有用。检查您感兴趣的每种类型的JavaDoc,那里有很多好东西!