JAVA 基本类型数组的初始化(原理篇)

本页面更新日期: 2016年06月25日

前言

在之前的学习中, 我们已经会 初始化数组了. 但是你真的了解其内部都发生了什么嘛? 下面让我们探究一下. 扒光数组的华丽外衣, 嘿嘿.

对于 基本类型数组而言, 数组元素的值 是直接存储在 对应的数组元素中.
因此, 初始化数组时, 先为该数组分配内存空间, 然后直接将数组元素的值 存入对应的数组元素中去.

这里写图片描述

看上图, 其中 1,2,3,4,5 是数组元素的值.
1,2,3,4,5 外面的长方形外框, 就是数组元素.
根据这个图, 我们可以推断出, 这是一个 int[] 数组, 它的长度是5, 就是说具有5个数组元素, 而这5个数组元素里面存放的值 分别是 1,2,3,4,5

下面让我们写份代码试试, 定义一个 int[]类型的数组变量, 采用动态初始化的方式, 然后显式的为每个数组元素赋值. 最后将数组 输出出来.

public class PrimitiveArrayTest
{
  public static void main(String[] args)
  {
    //定义一个 int[] 类型的数组变量
    int[] iArr;
    //动态初始化数组, 数组长度为5
    iArr = new int[5];
    //采用循环方式为每个数组元素赋值
    for (int i = 0; i < iArr.length; i++)
    {
      iArr[i] = i + 10;
    }
    //使用 foreach 循环输出数组
    for (int temp : iArr)
    {
      System.out.println(temp);
    }
  }
}

自己写然后运行看下, 接着我们来说道说道, 这里面到底发生了什么.

执行第一行代码 int[] iArr; 时
仅仅是定义了一个数组变量, 此时的内存如下图:

这里写图片描述

上图可以看出, 执行了 int[] iArr 代码后.
仅在 栈内存 中定义了一个空引用(就是 iArr数组变量)
这个引用并未指向任何有效的内存.

当执行 iArr = new int[5] 动态初始化后, 系统就开始搞事了. 会为其分配内存空间, 并分配默认的初始值: 所有数组元素都被赋值为 0 .
此时内存情况如下:

这里写图片描述

此时 iArr 数组的每个数组元素的值 都是 0
当循环为该数组的每个 数组元素 赋值后
此时每个数组元素的值 都变成程序显式指定的值.
那么如下图:

这里写图片描述

从上图中可以看出, 基本类型数组的存储示意图.
每个数组元素的值 都是直接存储在对应的内存中.

结尾

如果你想学习更多JAVA知识, 可以 点我进入目录页

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值