java数组的初始化问题

java数组在使用之前一定要初始化吗?为什么?如果不进行初始化,底层的状态是什么?使用的话会发生什么错误?

6个回答

java数组不初始化就使用会报错,这点和c等语言不同,这是语言的特点,在安全方面做出了保证。c则不会报错,不过增加的风险。

数组的初始化分为两种!
即为:静态初始化和动态初始化!
简而言之,静态初始化就是,由程序员去指定显式(注意是显式)指定每个元素的值,系统自动判定数组长度。
如下:
int[] array = {1,2,3};

 
动态初始化,则只需要指定长度,系统为元素自动分配初始值!
int[] array=new int[3];

这样就是动态初始化。
那么这里就有些问题需要注意!......
答案就在这里:[ java ] 关于数组的初始化问题!
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

数组元素不要初始化,会自动填0
但是数组本身需要,否则数组引用指向null,会丢出null pointer exception

定义在类中不需要初始化,但定义在方法中就需要初始化

如果是类里面的话,使用会报nullpointer exception,如果定义在方法中不初始化就会编译错误

任何对象不初始化就是null(楼主问的应该就是这个),当然无法直接使用。除非你把他当null使用。

即便在C中也如此

int a[];

a能用吗?当然不能!

至于
int a[3];

这相当于java中
int[] a=new int[3];

这样当然可以用了。

从楼主选择的答案看,楼主还是没完全搞明白

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问