【发布时间】:2018-08-17 21:24:08
【问题描述】:
我正在尝试了解 Java 是如何管理内存的。
我正在了解内存的哪一部分包含静态方法和静态变量。他们说 PermGen 内存包含静态变量和静态方法,这是非堆内存的一部分(下图)。
但是,据我所知,Java 有堆栈段来保存局部变量、参数、引用、非 void 函数返回的值......等等,堆段保存对象和数组。 我已经阅读了很多关于这个主题的问答,并且有两种解释方式:
- 分为 2 部分:堆内存和非堆内存。
- 分为3部分:栈段、堆段、代码段。
谁能帮助我更清楚地理解这一点。 如果内存分为两部分:堆栈在哪里? 如果内存分为三部分:哪一部分保存静态方法和静态变量?
如果能得到您的帮助,我将不胜感激:D 谢谢。
【问题讨论】:
-
有很多很多的方式来描述 Java 管理内存的方式。许多或多或少是正确的。你的问题太笼统了。
-
请阅读Oracle oracle.com/technetwork/java/javase/…的以下手册
标签: java