JAVA中栈(堆栈)与堆的数据存储方式 栈区: 栈也叫栈内存,基本类型的变量和对象的引用变量都是在函数的栈内存中分配
堆区: 堆这块区域是JVM中最大的,应用的对象和数据都是存在这个区域,这块区域也是线程共享的,也是 gc 主要的回收区,一个 JVM 实例只存在一个堆类存,堆内存的大小是可以调节的。类加载器读取了类文件后,需要把类、方法、常变量放到堆内存中,以方便执行器执行,堆内存分为三部分:新生代、年老代、永久代
方法区: 方法区是被所有线程共享,静态变量+常量+类信息+运行时常量池存在方法区中,实例变量存在堆内存中。
JVM回收主要就是回收这三个区,或者也可以说是回收对象实例(即内存地址)和方法区