Java 中的内存管理


Java 内存模型分为线程栈(每个线程一个)和一个堆区域。

线程栈

这是线程特定的内存区域,包含局部变量、方法调用信息等。JVM 栈可以是固定大小的,也可以是可变大小的。如果线程中的计算超过其栈大小限制,则 JVM 会抛出 StackOverflowError 并退出。

它包含在应用程序生命周期中创建的所有对象。堆是在虚拟机启动时创建的。垃圾收集器回收对象堆存储,且对象从不显式地释放。JVM 不使用任何自动存储管理系统,它可能会根据系统要求而有所不同。堆可以是固定大小的,也可以根据要求而变化。堆的内存不必是连续的。

静态变量存储在堆区域,而存储在堆上的对象可以由存储在线程栈中的引用引用。

局部变量存储在堆栈区域。

更新于: 2020 年 2 月 24 日

667 次浏览

开启您的 职业生涯

完成课程后获得认证

开始
Advertisement