栈:方法运行时使用的内存,比如main方法运行,进入方法栈中执行
程序的主入口(main方法)开始执行时会进栈,代码执行完毕会出栈
堆:存储对象或者数组,new来创建的,都存储在堆内存
new出来的东西会在这块内存中开辟空间并产生地址
方法区:存储可以运行的class文件
本地方法栈:JVM在使用操作系统功能的时候用,和我们开发无关
寄存器:给CPU使用,和我们开发无关
public static void main(String[] args) {
int[] arr1 = {11, 22};
int[] arr2 = arr1;//arr1和arr2共用同一内存
System.out.println(arr1[0]);
System.out.println(arr2[0]);
arr2[0] = 33;
System.out.println(arr1[0]);
System.out.println(arr2[0]);
}
当两个数组指向同一个小空间时,其中一个数组对小空间中的值发生了变化,那么其他数组再次访问的时候都是修改后的结果了