Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Object - Fatal编程技术网

Java如何处理初始化由对象组成的数组?

Java如何处理初始化由对象组成的数组?,java,arrays,object,Java,Arrays,Object,我正在学习java,对于我正在创建的特定应用程序,我正在初始化一个2D对象数组。初始化时将占用数组的特定对象更改其no args构造函数中的多个变量。我想知道当声明数组时,java是否初始化数组所有元素中的每个变量: private Piece positions[][]=new Piece[8][8]; 还是有必要这样做 for(int i=0;i<8;i++){ for(int j=0;j<8;j++){ Positions[i][j]=

我正在学习java,对于我正在创建的特定应用程序,我正在初始化一个2D对象数组。初始化时将占用数组的特定对象更改其no args构造函数中的多个变量。我想知道当声明数组时,java是否初始化数组所有元素中的每个变量:

private Piece positions[][]=new Piece[8][8];
还是有必要这样做

for(int i=0;i<8;i++){
        for(int j=0;j<8;j++){
            Positions[i][j]=new Piece();

for(inti=0;iJava将数组中元素的值初始化为数据类型的默认值

其中,包含默认值:

每个类变量、实例变量或数组组件在创建时都会使用默认值进行初始化(§15.9、§15.10.2):

  • 对于byte类型,默认值为零,即(byte)0的值

  • 对于short类型,默认值为零,即(short)0的值

  • 对于int类型,默认值为零,即0

  • 对于long类型,默认值为零,即0L

  • 对于类型float,默认值为正零,即0.0f

  • 对于double类型,默认值为正零,即0.0d

  • 对于char类型,默认值为空字符,即“\u0000”

  • 对于boolean类型,默认值为false

  • 对于所有参考类型(§4.3),默认值为空

对于基本类型,这是
0
false
,对于引用类型,默认值是
null
。因此,是的,您需要使用
new
初始化上一个代码示例中的每个元素,否则它将是
null

private Piece positions[][]=new Piece[8][8];
这将初始化8x8
片段
引用的数组,而不是包含的元素。该数组将被
null初始化
,实际上每个单元格将包含
null

private Piece positions[][]=new Piece[8][8];