package com.example.demo;
import java.util.*;
/**
* @author lzf
* @create 2021/3/26
*/
class Solution {
public static void main(String[] args) {
// int i;
// System.out.println(i);//i未初始化
// int[] ints = new int[];//编译出错,需指定数组长度
// System.out.println(ints[1]);
// int[] ints = new int[5];
// System.out.println(ints[1]);//输出0
// int[][] ints1 = new int[5][];
// System.out.println(ints1[1]);//输出null
// int[][] ints1 = new int[5][];
// System.out.println(ints1[1][1]);//NullPointerException
// int[][] ints1 = new int[5][5];
// System.out.println(ints1[1][1]);//输出0
// Student[] ints1 = new Student[5];
// System.out.println(ints1[1]);//输出null
// Student[] ints1 = new Student[5];
// ints1[1] = new Student1();//编译出错,类型不匹配
}
}
class Student{
public String name;
}
class Student1{
public String name;
}
个人理解:数组也是一个对象,对于int类型的一维数组,必须指定长度,指定了长度之后,堆上的空间大小就可知了,即可分配,new命令创建对象之后会初始化所有值为0.
对于二维数组,如果只指定了第一维度的大小(如int[5][]),该对象持有五个int[]的引用,但是这五个对象的大小不知,也没有创建,所以为null
本文探讨了Java中数组的初始化,强调了int类型一维数组必须指定长度并会被初始化为0。对于二维数组,仅指定第一维大小时,第二维大小未知,因此默认为null。文章通过实例解释了不同情况下的数组初始化行为。

被折叠的 条评论
为什么被折叠?



