Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
启动数组时创建的对象数-Java_Java_Arrays - Fatal编程技术网

启动数组时创建的对象数-Java

启动数组时创建的对象数-Java,java,arrays,Java,Arrays,我正在准备Java OCA考试,我遇到了一个问题。给定以下代码,将创建多少个对象?这本书的作者说5,而我说3。为什么是3?因为创建了两个类型为Tends的对象,第三个对象是数组本身。数组元素的其余部分为空,所以我认为我们只创建引用,而不创建对象。我在构造函数中添加了一个打印,它打印了两次。是否有我遗漏的东西或书中提供的答案是错误的?提前谢谢 class Dozens { int[] dz = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; pu

我正在准备Java OCA考试,我遇到了一个问题。给定以下代码,将创建多少个对象?这本书的作者说5,而我说3。为什么是3?因为创建了两个类型为Tends的对象,第三个对象是数组本身。数组元素的其余部分为空,所以我认为我们只创建引用,而不创建对象。我在构造函数中添加了一个打印,它打印了两次。是否有我遗漏的东西或书中提供的答案是错误的?提前谢谢

class Dozens {
    int[] dz = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

    public Dozens(){
        System.out.println("Object created");
    }
    public static void main(String[] args) {
        Dozens[] da = new Dozens[3];
        da[0] = new Dozens();
        Dozens d = new Dozens();
        da[1] = d;
        d = null;
        da[1] = null;
        // do stuff
        System.out.println(da[2] instanceof Object);
    }
}

发现错误,每打对象都有一个数组字段,因此每次创建一打对象都会创建两个对象。

发现错误,每打对象都有一个数组字段,因此,每次创建一打对象时,都会创建两个对象。

执行
main
方法将显式创建五个对象

  • 一个<代码>几十个[]对象
  • 两个
    几十个
    对象
  • 两个
    int[]
    对象;请参阅
    dz
    字段

此外,一些对象可以通过
println
调用在后台创建。

执行
main
方法将显式创建五个对象

  • 一个<代码>几十个[]对象
  • 两个
    几十个
    对象
  • 两个
    int[]
    对象;请参阅
    dz
    字段
此外,一些对象可能是通过
println
调用在幕后创建的