zoukankan      html  css  js  c++  java
  • Java异常理解之Exception in thread “main“ java.lang.ArrayIndexOutOfBoundsException

    这个异常是Java中的数组越界问题

    当你使用不合法的索引访问数组是会出现这种错误
    例如:

     class Solution {
        public static int  climbStairs(int n) {
            if (n == 1 || n == 2) {
                return n;
            }
            int[] demo = new int[n];    
            demo[1]=1;
            demo[2]=2;
            for (int i = 3; i <=n; i++) {
                demo[i] = demo[i-1] + demo[i-2];
            }
            return demo[n];
        }
    }
    public class palouti {
        public static void main(String[] args) {
            System.out.println(Solution.climbStairs(3));
        }
    }

    发生这种错误的原因是:

    在这个地方开辟数组长度为n

    int[] demo = new int[n];  

    而在下面的使用中

    for (int i = 3; i <=n; i++) {
                demo[i] = demo[i-1] + demo[i-2];
            }

    无论n的值为多少都会超出界限
    因为数组的索引是从 0 开始的,前面开辟的长度每次都差了一位
    例如:n=3时,在 for 循环的索引中,都会索引到 demo[3],而从 0 开始索引,到demo[3]时,就相当于从 0-1-2-3,超出了数组界限

    解决方法也很简单

    只要将

    int[] demo = new int[n];  

    改为

    int[] demo = new int[n+1];  

    Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException:
    这个异常会经常遇到,只要注意数组的界限,就可以避免了

  • 相关阅读:
    ubuntu一些记录
    unittest添加测试用例方法
    弹出框处理
    无法连接终端
    Python 断言
    Appium_Python_Api文档
    pycharm快捷键
    appium运行时启动失败
    appium运行时每次默认弹出appiumsetting与unlock重装,关闭这两个步骤的方法
    SpringBoot的jar包引用外部properties文件
  • 原文地址:https://www.cnblogs.com/lx06/p/15688926.html
Copyright © 2011-2022 走看看