Java 中的内存管理


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

线程栈

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

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

静态变量存储在堆区域中,存储在堆中的对象可通过存储在线程栈中的引用来引用。

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

更新时间: 24-Feb-2020

667 阅读

开启你的 职业生涯

通过完成课程获得认证

开始
广告