声明/初始化原语与创建新对象相同吗?据我所知,当我们创建原语时,我们还为它们创建包装类。我在java btw上实现。
问问题
1525 次
5 回答
5
不,分配原始值不会创建任何对象。
您可能指的是这样一个事实,即原始值可以自动装箱到相应的包装器中,当它们用于需要引用类型(又名“对象”)的上下文中时:
int i = 13; // this line does not create an object
Integer i2 = i; // at this line 13 is auto-boxed into an Integer object
char c = 'x'; // again: no object created:
List<Character> l = new ArrayList<Character>();
l.add(c); // c is auto-boxed into a Character object
另外,我将尝试描述声明和初始化之间的区别:
int i; // an int-variable is declared
int j = 0; // an int-variable is declared and initialized
i = 1; // an int-variable is assigned a value, this is *not* initialization
变量在第一次创建时被“声明”(即您指定变量的类型和名称)。它在声明期间被赋值时被初始化。
于 2010-05-20T15:22:00.917 回答
3
不,声明和初始化原始变量不会创建对象。让我们看一个有两个整数值的类——一个使用包装器类型,一个不使用。
public class Foo
{
private int primitive = 10;
private Integer wrapper = new Integer(10);
}
变量的值primitive
只是数字 10。wrapper
变量的值是对一个对象的引用Integer
,而该对象又包含数字 10。因此 的实例Foo
将保持数字 inprimitive
和引用 in 的状态wrapper
。
Java中的所有原始类型都有包装类,但您不会自动使用它们。
于 2010-05-20T15:20:39.907 回答
2
创建原语不会同时为它们创建包装类。
至于您最初的问题:声明/初始化原语将在堆栈上创建它,而声明对象将分配一个变量来保存对对象的引用。初始化对象将在堆上分配它。
于 2010-05-20T15:21:00.017 回答
1
回答:没有。
看看这个:http: //java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.html
于 2010-05-20T15:21:01.967 回答
0
不,原语不是 java 中的对象。
于 2010-05-20T15:20:33.260 回答