我是java新手。我有一个疑问。
class ArrTest{
public static void main(String args[])
{
int i = 0;
int[] a = {3,6};
a[i] = i = 9;
System.out.println(i + " " + a[0] + " " + a[1]); // 9 9 6
}
}
最佳答案
这是伟大的 Java 评估规则适用的另一个很好的例子。
Java 从左到右解析地址。 a[i]
就是a[0]
的地址,然后i就是i的地址,然后把9赋给i,再把9赋给 [0]
。
IndexOutOfBoundsException
永远不会被抛出,因为a[0]
没有越界。
误解是 a[9]
,它违反了left-to-right-rule
关于java - 为什么下面的代码没有抛出IndexOutOfBoundsException,并打印出9 9 6?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6860357/