2013-05-30 773 views
1

intInteger之间的区别是什么。是的,一个是primitive,另一个是wrapper,正确使用它们的情况是什么。int和Integer之间的区别

而且之间有什么区别:

int i=0; 
++i 
and 
i++ 
+0

'++ i'是前缀增加器,它将'1'加1并返回新值。 'i ++'是后缀增量器,它返回'i'的值,然后给'i'加1。 – jonhopkins

+0

查看http://stackoverflow.com/questions/16460879/java-prefix-postfix-issue/16461035 ++ i和i ++ – nakosspy

+1

在两个不同的问题中提出两个不同的问题。并使标题具有描述性。 – Raedwald

回答

6

部分1

一个例子..你可以使用IntegerHashMap的关键,但你不能使用int。因为需要Object

所以,你需要一个int价值作为一个对象,你需要使用Integer类。

部2

++ i是预增量 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

Integer是一个对象,而一个int是一个原始的。所以你可以有一个空引用IntegerSetList他们。你不能这样做,int

3

Integerint的包装类,它是一种原始数据类型。当int不能满足时使用Integer。例如:在泛型中,泛型类,方法或变量的类型不能接受原始数据类型。在这种情况下,Integer来救援。

List<int> list; //Doesn't compiles 
List<Integer> list; // Compiles 

而且Integer自带的静态方法多如牛毛,像toBinaryStringtoHexStringnumberOfLeadingZeros等,可将非常方便。

2

如上所述 Integer是一个对象,而int是一个基元。所以你可以对Integer和Set或者它们的列表有一个空引用。你不能这样做int

我发现这个空引用非常有用,当我必须在数据库中存储int值。当我使用Integer时,我可以存储空值。但是当我使用int时不能这样做。

1

一个基本的解释是一个int是一种原始数据类型,并且实际上只是一个存储在内存中的值。 Integer是一个Java对象,它将int包装在一个类中,并且有许多很好的/有用的方法,可以调用该方法来处理内部隐藏的支持int。这与大多数基本数据类型相同,例如booleanBoolean,charCharacter等。这被称为Boxing原始。拆箱正好相反,拿一个对象并提取支持原型。

这里的

String someString = "10"; 
Integer intObj = Integer.parseInt(someString); 
System.out.println(intObj.toString()); 

你会发现,一些数据类型的比别人有更多有用的方法之一可以如何使用IntegerString转换成int(盒装到Integer)的一个例子。检查你感兴趣的每种类型的JavaDoc,这里有很多好东西!

相关问题