java中数组的默认值是什么?

java中数组的默认值是什么?,java,instance-variables,local-variables,Java,Instance Variables,Local Variables,如果需要为局部变量分配一些默认值,那么为什么java为本地声明的数组提供默认值呢 import java.util.Arrays; import java.util.Scanner; public class MatrixMultiplication { int a; int a1[][]=new int[2][2]; public static void main(String[] args) { int a2[][]=new int[2][2];

如果需要为局部变量分配一些默认值,那么为什么java为本地声明的数组提供默认值呢

import java.util.Arrays;
import java.util.Scanner;

public class MatrixMultiplication {

int a;
int a1[][]=new int[2][2];

      public static void main(String[] args) {

        int a2[][]=new int[2][2];
        int b;

        MatrixMultiplication mm=new MatrixMultiplication();
        System.out.println(mm.a);
        System.out.println(mm.a1[1][0]);
        System.out.println(b);
        System.out.println(a2[1][0]);

    }
}

就像上面的变量代码一样,默认值是0,而对于b,我们必须设置一些值。那么对于a1[]],每个元素的dafult值为0。在此之前,所有内容都被理解为have,它们都提供了deafult值,但由于a2[][]是本地声明的,那么它的元素不应该作为java规则默认初始化,那么它们是如何默认初始化的,每个元素都是0

但是,由于a2[][]是本地声明的,因此其元素不应由deaflt初始化

变量和数组项之间有很大的区别

b
未初始化是一个常见的编码错误,因此编译器会调用它


但是
a2
是初始化的,当数组被分配时,数组的内容被设置为数组元素类型的默认值-
int[]
(或
a2[0]
)和
int
(对于
a2[0][0]
),在您的情况下。

对于整数和浮点原语,它是0,对于布尔型,它的
false
,对于所有其他引用类型,它的
null
。(但是对于局部变量没有默认值。您可以调用
new
来创建一个新对象,该对象初始化局部数组。因此,这就是元素设置为0的方式,
new
执行此操作。)这就是我要问的,为什么数组在声明时被初始化为默认值locally@Ankit:它与声明的位置无关。您正在积极创建它:
newint[2][2]
public class HelloWorld{

     public static void main(String []args){
        System.out.println("sampleArray[0] is ");
        int sampleArray[]   =   new int[7];
        System.out.println(sampleArray[0]);
     }
   }

      Output 
      sampleArray[0] is 
      0