heap和stack有什么区别?

stack内存指的是程序进入一个方法时,系统会专门为这个方法分配一块内存空间,这块内存空间也被称为该方法栈区,该方法的栈区专门用于存储该方法中定义的局部变量,包括基本类型的变量和引用变量。当这个方法结束时,该方法栈区将会自动被销毁,栈区中的所有局部变量都会随之销毁。

heap内存是Java虚拟机拥有的内存区,所有Java对象都将被放在heap内存内,位于heap内存中的Java对象由系统的垃圾回收器负责跟踪管理——也就是进行垃圾回收,当堆内存中的Java对象没有引用变量引用它时,这个Java对象就变成了垃圾,垃圾回收期就会在合适的时候回收它。

Java Program!
原文地址:https://www.cnblogs.com/programb/p/14068553.html