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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 傲鸽 中级黑马   /  2013-7-17 06:52  /  1095 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 傲鸽 于 2013-7-17 07:13 编辑

  1. <P>public class Test { </P>
  2. <P>     public static void main(String[] args){ </P>
  3. <P>         java.util.Date[] datas=new java.util.Date[10]; </P>
  4. <P>         System.out.println(datas[0]); </P>
  5. <P>         System.out.println(datas[10].toString()); </P>
  6. <P>     } </P>
  7. <P>}</P>
复制代码
除了那个datas[10]出错以外,还有哪里错了,把10改成9后运行还是报错!!!

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 淡定

查看全部评分

5 个回复

倒序浏览
知道越界异常还这样写,哎,说什么好呢
回复 使用道具 举报
  1.          java.util.Date[] datas=new java.util.Date[10];//未初始化,没有新建对象
  2.                  Date date=new Date();//这样初始化一个对象
  3.                  System.out.println(date);//打印了时间了吧?
  4.                         System.out.println(datas[0]);//打印的是null
  5.                         System.out.println(datas[9].toString());//null就没有toString 方法,报空指针异常
复制代码

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 很给力!

查看全部评分

回复 使用道具 举报
datas【10】角标越界
datas【10】。toString是空指针,因为datas数组没有初始化所以会报空指针异常

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
注意空指针异常问题,对于null调用toString方法时会存在空指针异常问题
  1. class Test {

  2.    public static void test(){

  3.          java.util.Date[] datas=new java.util.Date[10]; //这里数组内都是null

  4.         System.out.println(datas[0]);

  5.        System.out.println(datas[9].toString());
  6.        //在这儿报的是空指针异常,因为null不能调用toString方法

  7.     }
复制代码

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
java.util.Date[] datas=new java.util.Date[10]; jvm会在堆内存中开辟空间,该空间用于存储数组对象的引用(就是每一个date对象的堆内存地址),由于这些变量在堆内存中,所以jvm会初始化这些引用为null,然后把这个空间的第一个元素的位置返回赋值给dates.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马