看透内存中的数组
程序员文章站
2022-04-03 07:57:04
...
一 数组在內存中的存储方式
看待一个数组时,一定要把数组看成两个部分:一部分是数组引用,也就是在代码中定义的数组引用变量,它存储在内存的栈部分,另一部分是实际的数组对象,这部分存储在內存的堆部分,通常无法直接访问它,只能通过数组引用变量来访问,下图清晰的描述了数组在内存中的存储示意图。
二数组应用举例
1代码示例
public class ArrayInRam
{
public static void main(String[] args)
{
// 定义并初始化数组,使用静态初始化
int[] a = {5, 7 , 20};
// 定义并初始化数组,使用动态初始化
int[] b = new int[4];
// 输出b数组的长度
System.out.println("b数组的长度为:" + b.length);
// 循环输出a数组的元素
for (int i = 0 ,len = a.length; i < len ; i++ )
{
System.out.println(a[i]);
}
// 循环输出b数组的元素
for (int i = 0 , len = b.length; i < len ; i++ )
{
System.out.println(b[i]);
}
// 因为a是int[]类型,b也是int[]类型,所以可以将a的值赋给b。
// 也就是让b引用指向a引用指向的数组
b = a;
// 再次输出b数组的长度
System.out.println("b数组的长度为:" + b.length);
}
}
2 运行结果
5
7
20
0
0
0
0
b数组的长度为:3
3结果分析
图一是b=a前,数组在內存中的表示。
图二是b=a后,数组在內存中的表示。
针对原来的b数组,因为它失去了引用数组,会变成垃圾,等待垃圾回收杌制回收它。
下一篇: GO语言数组的内存
推荐阅读
-
PHP函数in_array()如何检查数组中的值_PHP教程
-
PHP实现查询两个数组中不同元素的方法,php数组
-
python中mysql模块的内存泄露和中文乱码详解
-
简单了解PHP编程中数组的指针的使用_PHP
-
php中的数组操作函数整理_PHP
-
Jsの数组练习-求一组数中的最大值和最小值,以及所在位置
-
php-Arrays函数-array_key_exists-检查给定的键名或索引是否存在于数组中_PHP教程
-
javascriptarray PHP中的array数组类型分析说明
-
关于PHP5和PHP7中数组实现方式的比较总结
-
foreach - PHP 导入文本文件的正则表达式提取部分内容 变成数组 然后存入到mysql数据库中