数组出现空指针报错

今天首先复习的是面向对象这一思想,按我理解的话是让我们在用程序进行编程时能够有一个比较明确的逻辑思路,就好比当我们遇到一个问题时我们首先应该有一个比较明确的步骤,所以就多敲吧。
然后我在写写数组吧,这东西我自己弄的时候总是忘记。
首先就是定义方式,有两种,一种就是
int []arr=new int[],这种必须在后面的括号中给出数组的长度才能让JVM进行初始化。
或者int[] arr = {1,2,3}和int[] arr = new int[]{1,2,3}。
int arr[],这种只是定义了一个数组。
它们两个一上一下分别也称为动态初始化和静态初始化,意思就是数组的长度分别由人和系统给出。
然后就是JAVA中的内存分配,这里主要讲了堆和栈,栈内存主要存放的是局部变量,而堆内存中则储藏的是所有new出来的东西。
然后就是数组中常见的报错了:
a:ArrayIndexOutOfBoundsException:数组索引越界异常
原因:你访问了不存在的索引。
b:NullPointerException:空指针异常
原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
在这里插入图片描述
就像上面这个程序一样,当我们要输出数个一维数组是,我们需要将它放进一个二维方程里,同样二维方程也需要定义它的长度,除此之外,程序中的arr[i]=new int [i+1]则是定义了每次输出的一维数组的长度,否则就会出现空指针报错。
还有上次作业里遇到的一个概念:
循环体中的先加就是在下一次循环之前加一,后加一就是在循环体之内加的,万一循环判断没过,则不会加一。跟while和do…while一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值