下面这个小程序javac成功,但java时显示Exceptiong in thread “main” java.lang.arrayIndexOfBoundsException:3 at welcome.main(welcome.java:7),为什么?谢谢!
------------------------------------------------------------------
public class welcome
{
public static void main(String[] args)
{String[] greeting=new String[3];
greeting[1]="This test1";
greeting[2]="This test2";
greeting[3]="This test3";
for(int i=1;i<=3;i++)
System.out.println(greeting[i]);
}
}
------------------------------------------------------------------
public class welcome
{
public static void main(String[] args)
{String[] greeting=new String[3];
greeting[1]="This test1";
greeting[2]="This test2";
greeting[3]="This test3";
for(int i=1;i<=3;i++)
System.out.println(greeting[i]);
}
}
解决方案 »
- 广播编程的问题,我的接收端无法接收发送端发来的数据
- 一个难题。。。
- 符号常量和变量的区别是什么?
- 如果类中直接带 static 与 构造方法有什么不同?
- 请问如何用 Java 语言给SQLServer表image列插入图片?谢谢
- 有懂jsf的人吗,帮兄弟一个忙,谢谢
- 新手求助!
- 请熟练java的高手帮我举一些关于java编码规范的例子!!
- 请问System.exit(int);里面的int参数都用什么值呀,如0,1,有何不同?
- SCJP的资料、笔记、模拟卷实在是太多太杂了!请通过的高手给出绝对必看必做(而且用了基本能够保证通过)的经典资料!
- 很急!很急!ArrayList里的值每次都被覆盖了,该怎么解决?在线等
- Vector无参构造有什么用?
编译javac当然可以通过了。但是执行java的时候,数组本来就是new String[3];, 下标应该是0,1,2。你结果用到了reeting[3],所以报越界的异常啦。
{
public static void main(String[] args)
{
String[] greeting=new String[3];
greeting[0]="This test1";
greeting[1]="This test2";
greeting[2]="This test3";
for(int i=0;i <3;i++)
System.out.println(greeting[i]);
}
}
你这样试下 顺便try{} catch(){}一下
捕获下标越界问题