[英]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.