记java数组局部变量的初始化问题

本文探讨了Java中数组的初始化,强调了int类型一维数组必须指定长度并会被初始化为0。对于二维数组,仅指定第一维大小时,第二维大小未知,因此默认为null。文章通过实例解释了不同情况下的数组初始化行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值