Java重温(四)——数组小知识

前言

坚持不懈,自力更生,愿大家前程似锦,年入百万!!先赞后看和本文更配哦~

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(逆序遍历)

如:

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值