例如,为什么你可以做:
int n = 9;
而不是:
Integer n = 9;
你可以这样做:
Integer.parseInt("1");
而不是:
int.parseInt("1");
例如,为什么你可以做:
int n = 9;
而不是:
Integer n = 9;
你可以这样做:
Integer.parseInt("1");
而不是:
int.parseInt("1");
当前回答
int变量保存一个32位有符号整数值。Integer(大写I)保存对(类)类型Integer或null对象的引用。
Java自动在两者之间进行类型转换;当Integer对象作为int操作符的参数出现,或者被赋值给int变量,或者一个int值被赋值给Integer变量时,从Integer到int。这种类型转换称为装箱/解装箱。
如果一个引用null的Integer变量被显式或隐式地解盒,则抛出NullPointerException异常。
(在上述文本中,“变量”指局部变量、字段或参数)
其他回答
Int是基本类型,不是对象。这意味着没有与之关联的方法。Integer是一个具有方法的对象(例如parseInt)。
在更新的java中,有自动装箱(和解装箱)的功能。这意味着编译器将在需要的地方插入Integer.valueOf(int)或integer.intValue()。这意味着它实际上是可以写的
Integer n = 9;
它被解释为
Integer n = Integer.valueOf(9);
Integer基本上只是原始类型int的包装器。它允许您使用Integer类的所有函数,使您的工作更加轻松。
如果您是Java新手,那么您应该学会欣赏Java文档。例如,您想了解的关于Integer类的任何内容都有详细的文档。
这是直接从Integer类的文档中出来的:
Integer类将原始类型int的值包装在对象中。Integer类型的对象包含一个int类型的字段。
int是基本数据类型,而Integer是Java中的引用或包装器类型(类)。
在java 1.5之后,引入了自动装箱和拆箱的概念,你可以像这样初始化int或Integer。
int a= 9
Integer a = 9 // both valid After Java 1.5.
为什么Integer.parseInt (" 1 ");但不是int.parseInt("1");??
Integer是jdk库中定义的类,parseInt()是属于Integer Class的静态方法
所以,Integer.parseInt (" 1 ");在java中是可能的。但是int在java中是基本类型(假设是关键字)。所以,你不能用int调用parseInt()。
int变量保存一个32位有符号整数值。Integer(大写I)保存对(类)类型Integer或null对象的引用。
Java自动在两者之间进行类型转换;当Integer对象作为int操作符的参数出现,或者被赋值给int变量,或者一个int值被赋值给Integer变量时,从Integer到int。这种类型转换称为装箱/解装箱。
如果一个引用null的Integer变量被显式或隐式地解盒,则抛出NullPointerException异常。
(在上述文本中,“变量”指局部变量、字段或参数)
在Java中,int是一个基本数据类型,而Integer是一个Helper类,它用于将一种数据类型转换为另一种数据类型。
例如:
double doubleValue = 156.5d;
Double doubleObject = new Double(doubleValue);
Byte myByteValue = doubleObject.byteValue ();
String myStringValue = doubleObject.toString();
基本数据类型存储最快的可用内存,而Helper类比较复杂,存储在堆内存中。
参考“David Gassner”Java基本训练。