繁体   English   中英

数组中的java new运算符

[英]java new operator in Array

我发现新操作员有点混乱。 我现在的理解是

new ClassName(...)

是创建一个实例并调用Class的构造函数。 但是在启动数组时new有什么作用? 例如,我觉得下面的两个新运算符不同,但无法清楚解释。

Employee[] staff = new Employee[3];
staff[0] = new Employee(...);

有什么区别吗?

谢谢。

new Employee[3]创建一个数组,该数组可以保存对3个Employee实例的引用。 它们每个都初始化为null。 staff[0] = new Employee(...); 创建一个Employee实例,并将其引用分配给数组的第一个索引。

Employee[] staff = new Employee[3];

正在初始化Employee的数组,其中包含3个“地方”,这些地方可以保存对Employee对象的引用。
这意味着它在RAM(=> 30字节)中为Employee类的一个对象/实例保留3倍的空间(例如10字节)。
但是您的数组以“ null”开头。 staff[0] = new Employee(...); 正在创建对您新创建的Employee类型对象的引用。 数组

当您调用类的构造函数时,将创建该类的实例(对象)。 “ new”关键字告诉编译器创建一个对象。 数组是一个类,您可以创建Array of SomeClass类型的对象。 您需要使用关键字“ new”,因为您仍在创建对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM