【发布时间】:2014-11-30 07:53:51
【问题描述】:
通过创建 Bar.Class 的 cmd 行编译此代码
import java.util.Map;
import java.util.HashMap;
public class Bar {
private static final String[][] pos =
new String[][] {{"X0","Y0"},{"X1","Y1"},{"X2","Y2"}};
public Bar() {}
public static String getAtPosition(int x, int y) {
return pos[x][y];
}
public static void main(String[] args) {
Bar bar = new Bar();
try {
for (int x = 0; x < pos.length; x++) {
for (int y = 0; y < pos.length; y++) {
System.out.println(bar.getAtPosition(x,y));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
进入java Bar
出现如下错误X0
Y0
java.lang.ArrayIndexOutOfBoundsException: 2
at Bar.getAtPosition<Bar.java:12>
at Bar.main<Bar.java:23>
此代码由我采访过的一家公司提供,他们要求 cmets 解释每个源代码行以及程序运行时的结果。
任何帮助将不胜感激,我才学习 java 几天,今天我花了几个小时。
【问题讨论】:
-
在面试测试中给出答案是作弊。我会通过要求您查看 pos 来为您指明正确的方向。它是一个矩阵,但矩阵的大小是多少?这可能有助于您理解问题。
-
查看this link 以获得答案。
-
感谢二维数组的链接,我将按照建议查看矩阵大小。我并不是想作弊,尽管我只是想利用我所有的资源来证明我可以解决问题。 :-)
-
问题还要求解释结果中的异常,然后询问是哪一行导致异常?有什么建议吗?