java中数组的默认值是什么?
如果需要为局部变量分配一些默认值,那么为什么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];
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