内存结构说明: 方法里面的变量都是局部变量,都存放在栈里面。堆是存放对象和数组,new出来的结构都放在堆空间中static 、常量、String主要存放在方法区堆栈里面的地址并不是内存底层真是的地址,它是JAVA虚拟机算出来的一个hash值,是屏蔽了底层真实地址的值 我们来看一看数组在堆栈中是如何存储的: 那二维数组在堆栈中如何存储的呢? 当main 方法结束arr1会弹出栈,于是指针就没有了。当指针没有了,堆空间里面的数组也会在某个不确定的时间被回收。