声明/初始化的原语与创建新对象相同吗?据我所知,当我们创建原语时,我们还为他们创建包装类。 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中的对象。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top