heap 和 stack

java的内存分为两类 :

  • 堆内存 heap
  • 栈内存 stack

stack 是指程序进入一个方法时,
会为这个方法单独分配一块私属存储空间,
用于存储这个方法内部的局部变量,
当这个方法结束时,
分配给这个方法的栈会释放,
这个栈中的变量也将随之释放.

heap 一般用于存放不放在当前方法栈中的那些数据,
例如,
使用 new 创建的对象都放在堆里,
所以,
它不会随方法的结束而消失.
方法中的局部变量使用 final 修饰后,
放在堆中,
而不是栈中.