声明/初始化原始素等于创建新对象
-
03-10-2019 - |
题
声明/初始化的原语与创建新对象相同吗?据我所知,当我们创建原语时,我们还为他们创建包装类。 IM在Java BTW上实施。
解决方案
不,分配原始值确实 不是 创建任何对象。
你什么 可能 指的是,当需要在需要参考类型(又称“一个对象”)的上下文中使用原始值可以自动框中到相应的包装器中:
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
第一次创建它时,将“声明”变量(即您指定变量的类型和名称)。分配值时,它将被初始化 在声明期间.
其他提示
不,声明和初始化原始变量确实 不是 创建一个对象。让我们上一个具有两个整数值的课程 - 一个使用包装器类型,一个不使用包装器类型。
public class Foo
{
private int primitive = 10;
private Integer wrapper = new Integer(10);
}
这 价值 的 primitive
变量只是数字10。 wrapper
变量为a 参考 到一个 Integer
依次包含数字10的对象。 Foo
将保留该数字的状态 primitive
以及参考 wrapper
.
那里 是 Java中所有原始类型的包装类,但您不会自动使用它们。
创建原始 才不是 还为他们创建包装班。
至于您的原始问题:声明/初始化原始性将在堆栈上创建它,而声明对象将分配一个变量以保存对象的引用。初始化对象将在堆上分配。
否。原语不是Java中的对象。
不隶属于 StackOverflow