栈内存与堆内存

JAVA把内存分为栈内存和堆内存。

栈内存分配给函数中的一些基本类型的变量和引用变量。

释放内存:超过变量的作用域后,java会自动释放掉该内存空间。

堆内存分配给创建的对象和数组。

释放内存:在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。数组和对象本身在堆中分配,即使程序运行到使用new产生数组 和对象的语句所在地代码块之外,数组和对象本身占用的堆内存也不会被释放,数组和对象在没有引用变量指向时候,才变成垃圾,不能再使用,但仍然占着内存,在随后的不确定的时间被java垃圾释放器释放掉。

原文地址:https://www.cnblogs.com/tengpengfei/p/10454081.html