JAVA 基本类型数组的初始化(原理篇)
来源:互联网 发布:ican软件 编辑:程序博客网 时间:2024/05/22 01:29
JAVA 基本类型数组的初始化(原理篇)
前言
[原文链接](http://blog.csdn.net/tmdlife/article/details/51759866)
在之前的学习中, 我们已经会 初始化数组了. 但是你真的了解其内部都发生了什么嘛? 下面让我们探究一下. 扒光数组的华丽外衣, 嘿嘿.
对于 基本类型数组而言, 数组元素的值 是直接存储在 对应的数组元素中.
因此, 初始化数组时, 先为该数组分配内存空间, 然后直接将数组元素的值 存入对应的数组元素中去.
看上图, 其中 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); } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
自己写然后运行看下, 接着我们来说道说道, 这里面到底发生了什么.
执行第一行代码 int[] iArr; 时
仅仅是定义了一个数组变量, 此时的内存如下图:
上图可以看出, 执行了 int[] iArr 代码后.
仅在 栈内存 中定义了一个空引用(就是 iArr数组变量)
这个引用并未指向任何有效的内存.当执行 iArr = new int[5] 动态初始化后, 系统就开始搞事了. 会为其分配内存空间, 并分配默认的初始值: 所有数组元素都被赋值为 0 .
此时内存情况如下:
此时 iArr 数组的每个数组元素的值 都是 0
当循环为该数组的每个 数组元素 赋值后
此时每个数组元素的值 都变成程序显式指定的值.
那么如下图:
从上图中可以看出, 基本类型数组的存储示意图.
每个数组元素的值 都是直接存储在对应的内存中.
结尾
- JAVA 基本类型数组的初始化(原理篇)
- JAVA 基本类型数组的初始化(原理篇)
- java基本类型数组初始化
- java基本类型数组初始化
- java基本类型数组初始化
- java基本类型数组初始化
- java基本类型数组初始化
- Java 对象数组初始化 和 基本类型数组初始化的区别
- java基本类型初始化
- Java 数组类型(基本类型数组类型、封装类型数组类型、数组的数组类型)
- JAVA 引用类型数组的初始化
- Java数组类型的定义和初始化
- javaSE学习14_基本类型数组的初始化
- 三张內存变化图揭秘基本类型数组的初始化
- java八大基本类型初始化
- 每天一点儿JAVA之数组篇--一维和多维数组的初始化和基本操作
- java 8个基本类型的初始化默认值
- java基本类型的初始化值,含代码
- HTTP缓存机制
- Java transient关键字使用小记
- PMP章节练习题(配合看pmbok使用)
- ubuntu 更新root账户密码
- Java开发中经常使用到的几种WebService技术实现方案
- JAVA 基本类型数组的初始化(原理篇)
- 编译dubbo项目方法
- vue-导出后端返回数据到excel中
- AliOS Things v1.1.1新特性
- 阿里云虚拟化平台携手麦腾举办AI时代的加速核心武器交流会
- Java上传文件
- mysql5.7解压安装
- JQuery页面加载初始化常用方法
- 在java中怎样将Date类型转换成字符串类型