在Java中创建数组时什么时候应该使用“new”?

问题描述 投票:0回答:1

我想了解下面代码中第 2 行中“new”命令的区别。因为当我打印位置时,答案是相同的。所以我不认为有必要使用这个“新”命令。

    float[] values ={10,20,30,40,50};               //In my view the easy way to do it.
    float[] values2=new float[]{10,20,30,40,50};    //not understand why more verbose?

我刚刚做了一个研究,发现了一些与堆内存和池相关的解释。但是我不明白为什么以及何时应该使用新的以及何时不应该使用。

java arrays new-operator
1个回答
0
投票

花括号只是一种简写。正如注释中提到的,只有在赋值时数组元素已知的情况下才能使用这种简写语法。话虽这么说,这两行编译成相同的字节码。

以本课程为例:

public class Test {
    float[] values = { 10, 20, 30, 40, 50 };
    float[] values2 = new float[] { 10, 20, 30, 40, 50 };
}

编译后的字节码相当于:

public class Test {
    float[] values;
    float[] values2;

    public Test() {
        super();
        this.values = new float[] { 10.0f, 20.0f, 30.0f, 40.0f, 50.0f };
        this.values2 = new float[] { 10.0f, 20.0f, 30.0f, 40.0f, 50.0f };
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.