java数组引用问题
答案:2 悬赏:20 手机版
解决时间 2021-01-30 13:13
- 提问者网友:爱了却不能说
- 2021-01-29 14:43
如果在java中声明int[]a = new int[6];这样一个引用,首先会在栈区创建一个4字节的引用,然后这个引用再指向一个包含6个int引用的地方,那这6个int引用是存在栈区,还是存在堆区?如果不是基本类型数组,是对象数组,他们的引用方式是否也是一样
最佳答案
- 五星知识达人网友:笑迎怀羞
- 2021-01-29 15:53
建议你去看一看局部变量和全局变量的作用域, 你就可以发现 public static void Inita(){ int a[]=new int[3]; a[0]=1; a[1]=2; a[2]=3; } 这里面的数组a是局部变量,和上面的static的a并非同一个数组,也就是说,你的static数组并没有初始化。理所当然出现空指针异常。
全部回答
- 1楼网友:思契十里
- 2021-01-29 17:02
对象数组(也是你上面所说的引用数组)你在声明初始化后,java给它的默认值就是为null值的,只有自己再去实例化具体的对象,它才不为null。所以你不去实例化,调用它的方法就会报那个空指针的异常!
附:注意下声明并初始化不同类型的数组时它给的默认值是什么就好了,相当于int[] a = new int[3],则表明数组a里面的元素默认都为0
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯