基础语法-数组的内存分配
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.JAVA的内存结构
Java程序在运行时,需要在内存中分配空间。为了提高运算效率,有对空间进行了不同区域的花费,因为每一片区域都有特定数据处理方式和内存管理方式。
栈内存:
用于存储局部变量,当数据使用完,所占空间会自动释放。
堆内存:
存储数组和对象,凡是通过new建立的实例都存放在堆内存中;
每一个实例都有内存地址值。实例中的变量都有默认初始化值;
实例不再被使用时,会在不确定的时间内被垃圾回收器回收。
方法区:
本地方法区:
寄存器:
二.编写案例代码并查看运行结果
/** * 数组定义 * * @author 尹正杰 * */ public class ArrayDemo2 { public static void main(String[] args) { //创建数组 int[] arr = new int[3]; //将arr2保存的是arr对应的引用地址 int[] arr2 = arr; //给数组中的0索引存储数据 arr[1] = 100; //查询数据中指定编号中存储的数据 for (int index = 0; index < arr.length; index++) { System.out.println("arr的索引" + index + "对应的值为" + arr[index]); } //arr变量存储的是数组在堆内存中的引用地址 System.out.println(arr); //将变量的引用地址指向为null arr = null; System.out.println(arr); System.out.println("=====我是分割线======"); for (int index = 0; index < arr2.length; index++) { System.out.println("arr2的索引" + index + "对应的值为" + arr2[index]); } System.out.println(arr2); } }
三.分析第二步中数组的内存分配