当前位置: 首页 > 知识库问答 >
问题:

重新分配不同大小的基元数组可获得ArrayIndexOutOfBoundException

羊舌迪
2023-03-14
    static int[] array = new int[1];

    static int fun() {
        array = new int[10];
        return 3;
    }

    public static void main(String[] args) {
        array[fun()] = 2;
    }
    public static void main(String[] args) {
    fun();  
    array[3] = 2;
    }

共有1个答案

笪栋
2023-03-14

这是由于在运行时评估数组访问的方式,如Java语言规范15.10.4节所述:

在运行时,数组访问表达式的计算行为如下:

  • 首先,计算数组引用表达式。如果此求值突然完成,则数组访问也会由于相同的原因突然完成,索引表达式不会被求值。
    null
    null
    null
 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 使用Java在原始数组中查找最大值/最小值 (15个答案) 5年前关闭。 这是我的代码。我需要获取数组的最小值,最大值才能为我获取范围,无论何时输入数字,最小值均为0。请帮助我。谢谢:) 问题答案: 同样,通过更改较小的符号可以找到最小值。

  • 问题内容: 当对象包含传递给方法的内容时,下面显示的代码可以很好地工作。我想知道…是否有办法获取分配给键的不区分大小写表示的值? 例: 无论DESCRIPTION被定义为“ Description”,“ description”还是“ DeScRipTIOn”,它都应该起作用 问题答案: 不幸的是,当前的实现似乎没有办法做到这一点。如果查看Gson源代码,更具体地说是JsonObject实现,您将

  • 为什么不能以这种方式获得分配的缓冲区长度。 释放同一数组时 运行时必须知道要解除分配多少。在删除数组之前,是否有任何访问长度的方法。如果没有,为什么没有提供获取长度的API?

  • 代码: 为什么第二个打印5而不是20?

  • 如何获得数组中多次出现的元素?

  • 如何在Java中以区分大小写的方式进行匹配?我的意思是,我想编写一个类似的regex。但是我想匹配以及等等。在Java中最简单的方法是什么?