基本概念
栈内存
所谓的栈内存就是存储进程在运行过程中变量的内存空间
堆内存
所谓的堆内存就是存储系统中数据的内存空间
数组相关的引用传递
先来看一段代码
public class ArrayDemo {public static void main(String[] args) {int[] x = null;x = new int[3];System.out.println(x.length);x[0] = 10 ; // 数组第一个元素x[1] = 20 ; // 数组第二个元素x[2] = 30 ; // 数组第三个元素for (int i = 0; i<x.length ; i++) {System.out.println(x[i]) ; // 通过循环控制索引下标更改}}
}
通过上述代码我们来看一下上述变量在内存空间中式如何分配的
同时,多个占内存也可以指向同一块对内存,如下代码
public class ArrayDemo{public static void main(String[] args) {int[] x = null ;int[] temp = null ; // 声明对象x = new int[3] ;System.out.println(x.length) ;x[0] = 1 ; // 数组第一个元素x[1] = 2 ; // 数组第二个元素x[2] = 3 ; // 数组第三个元素for (int i = 0; i<x.length ; i++) {System.out.println(x[i]) ; // 通过循环控制索引下标更改}temp = x ; //如果要发生引用传递,不要出现[]temp[0] = 55 ; // 修改数据System.out.println(x[0]) ;}
}
相信看了这幅图之后,就会理解java中不同的栈变量指向相同的堆变量在内存中是如何分配的了