方法区:
存储可运行的字节码文件,包含方法,静态成员,常量等
栈:
方法运行时使用的内存。
变量名存储在栈里
堆:
存储new的数组或对象。
eg.
包含main方法的class加载到方法区,程序开始,main方法进栈
定义数组arr,看到new就开辟了一块空间。变量arr保存的是数组在堆中的地址,通过内存地址引用堆内存中的数组,所以数组是引用类型
将arr赋值为null,此时指向方法区的一块空间。
类成员变量存储在堆内存,会有默认初始值null或0。局部变量存储在栈内存。