A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 刘沛霞 于 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

10 个回复

倒序浏览
亲,貌似需要实例化一个数组对象,你现在定义的知识一个引用,并未在内存中开辟空间分配资源,你试试改成int [] a = new int[3];//3表示数组大小,可以任意定义
回复 使用道具 举报
liuelxiwd 发表于 2013-4-30 09:44
亲,貌似需要实例化一个数组对象,你现在定义的知识一个引用,并未在内存中开辟空间分配资源,你试试改成int [] ...

是因为的我a还没有指向任何数组对象吧
回复 使用道具 举报
刘沛霞 发表于 2013-4-30 09:48
是因为的我a还没有指向任何数组对象吧

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

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

     }

这样就可以了。
回复 使用道具 举报
你把你的数组给清空啦,所以就没有指向啦,没有指向哪来的a[0]
回复 使用道具 举报
int a[] =null;这话都根本没有在堆内存中创建实体。
回复 使用道具 举报
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马