黑马程序员技术交流社区

标题: 我定义的这个数组没有问题啊!?怎么运行提示这个?? [打印本页]

作者: 刘沛霞    时间: 2013-4-30 09:38
标题: 我定义的这个数组没有问题啊!?怎么运行提示这个??
本帖最后由 刘沛霞 于 2013-5-2 14:56 编辑

class demo
{
public static void main (String [] args)
{
  int a[] =null;
   a[0]=1;
   System.out.println(a[0]);
}

     }

QQ截图20130430093739.jpg (20.97 KB, 下载次数: 0)

QQ截图20130430093739.jpg

作者: liuelxiwd    时间: 2013-4-30 09:44
亲,貌似需要实例化一个数组对象,你现在定义的知识一个引用,并未在内存中开辟空间分配资源,你试试改成int [] a = new int[3];//3表示数组大小,可以任意定义
作者: 刘沛霞    时间: 2013-4-30 09:48
liuelxiwd 发表于 2013-4-30 09:44
亲,貌似需要实例化一个数组对象,你现在定义的知识一个引用,并未在内存中开辟空间分配资源,你试试改成int [] ...

是因为的我a还没有指向任何数组对象吧
作者: liuelxiwd    时间: 2013-4-30 09:58
刘沛霞 发表于 2013-4-30 09:48
是因为的我a还没有指向任何数组对象吧

对的,它就像你只描述了有一个路标,但没说这个路标指向哪个方向
作者: 刘兆华    时间: 2013-4-30 13:58
   这个异常是空指针异常, 因为你的 a 数组没有大小,初始化的时候会实例化。因为他没数据所以报空指针异常
作者: xiewen    时间: 2013-4-30 16:46
1.首先你这个数组引用没有指向一个实例对象。
2.声明数组有三种方式
  a.   int[] arr=new int[3];//指明数组长度
  b.   int[] arr={1,2,3};//直接对数组赋值
  c.   int[]  arr=new int[]{1,2,3};//实例化并赋值
作者: 刘沛霞    时间: 2013-4-30 20:22
你没有初如化数组的大小,先定义数组的大小,而且不要用null来初始数组的值,在进行遍历数组时会报空指针的异常。一般设置数组大小时,数组里的值默认为当前基础类型的默认值。

class demo
{
public static void main (String [] args)
{
  int a[] =new int[10];
   a[0]=1;
   System.out.println(a[0]);
}

     }

这样就可以了。
作者: 江大海    时间: 2013-4-30 23:13
你把你的数组给清空啦,所以就没有指向啦,没有指向哪来的a[0]
作者: 张龙欢    时间: 2013-4-30 23:27
int a[] =null;这话都根本没有在堆内存中创建实体。
作者: 曹睿翔    时间: 2013-5-1 07:14
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2