有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

数组中的java新运算符

我觉得新的接线员有点混乱。我现在的理解是

new ClassName(...)

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

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

有什么区别吗

谢谢


共 (3) 个答案

  1. # 1 楼答案

    Employee[] staff = new Employee[3];
    

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

  2. # 2 楼答案

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

  3. # 3 楼答案

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