问题描述
- java数组的初始化问题
-
java数组在使用之前一定要初始化吗?为什么?如果不进行初始化,底层的状态是什么?使用的话会发生什么错误?
解决方案
java数组不初始化就使用会报错,这点和c等语言不同,这是语言的特点,在安全方面做出了保证。c则不会报错,不过增加的风险。
解决方案二:
数组的初始化分为两种!
即为:静态初始化和动态初始化!
简而言之,静态初始化就是,由程序员去指定显式(注意是显式)指定每个元素的值,系统自动判定数组长度。
如下:
int[] array = {1,2,3};
?
动态初始化,则只需要指定长度,系统为元素自动分配初始值!
int[] array=new int[3];
这样就是动态初始化。
那么这里就有些问题需要注意!......
答案就在这里:[ java ] 关于数组的初始化问题!
----------------------
解决方案三:
数组元素不要初始化,会自动填0
但是数组本身需要,否则数组引用指向null,会丢出null pointer exception
解决方案四:
定义在类中不需要初始化,但定义在方法中就需要初始化
解决方案五:
如果是类里面的话,使用会报nullpointer exception,如果定义在方法中不初始化就会编译错误
解决方案六:
任何对象不初始化就是null(楼主问的应该就是这个),当然无法直接使用。除非你把他当null使用。
即便在C中也如此
int a[];
a能用吗?当然不能!
至于
int a[3];
这相当于java中
int[] a=new int[3];
这样当然可以用了。
从楼主选择的答案看,楼主还是没完全搞明白
时间: 2024-09-20 00:29:52