黑马程序员技术交流社区

标题: 请大侠帮忙,关于Date [打印本页]

作者: 傲鸽    时间: 2013-7-17 06:52
标题: 请大侠帮忙,关于Date
本帖最后由 傲鸽 于 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后运行还是报错!!!

作者: chslzj    时间: 2013-7-17 08:25
知道越界异常还这样写,哎,说什么好呢
作者: chslzj    时间: 2013-7-17 08:30
  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 方法,报空指针异常
复制代码

作者: hou604720966    时间: 2013-7-17 08:46
datas【10】角标越界
datas【10】。toString是空指针,因为datas数组没有初始化所以会报空指针异常
作者: 周之浩    时间: 2013-7-17 09:01
注意空指针异常问题,对于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.     }
复制代码

作者: 于世德    时间: 2013-7-17 10:12
java.util.Date[] datas=new java.util.Date[10]; jvm会在堆内存中开辟空间,该空间用于存储数组对象的引用(就是每一个date对象的堆内存地址),由于这些变量在堆内存中,所以jvm会初始化这些引用为null,然后把这个空间的第一个元素的位置返回赋值给dates.




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