前言
坚持不懈,自力更生,愿大家前程似锦,年入百万!!先赞后看和本文更配哦~
1.JVM中的内存区
咱们先来大致了解一下JVM内存区域,其大致分为5个部分,其中程序计数器也叫寄存器
2.数组在内存区中怎样存在
首先数组的动态创建也就是new的空间,是在堆中,而堆里的数据都是有默认值的。例如咱们int[] array = new int[3],这里面根据上面知道默认值为0。
这次看数组需要用到栈,堆,方法区三个部分,接下来通过例子画图来看一下。例子中地址值是随便写的一个。
例1.
例2.
例3.
数组在运行期间长度是不能改变的,也就是说运行期间new int[3]之后的这片空间长度是不能改变的。结合下面这个图和代码片段来看一下:
3.使用数组时,经常出现的两种错误提示:空指针异常和索引越界异常
空指针异常(NullPointerException)
数组是属于引用类型的变量,而引用类型的变量默认值是null。例如:int[] array;而我们却没有new时。栈中是存在int[] array的。但地址值确实null。这样当我们使用array数组时就会产生空指针异常。
索引越界异常(ArrayIndexOutOfBoundsException)
访问数组元素时,如果索引编号不存在,就会发生索引越界异常。根据上面画图我们可以看出当我们堆中有空间之后当我们访问到这片空间之外的地方就会发生这个索引越界异常的错误。
4.在IDEA中遍历数组
当我们使用IDEA想要遍历一个普通类型的数组时我们可以直接写 变量名.fori(正序遍历)或 变量名.forr(逆序遍历)
如: