PermGen space Java2025 年 5 月 2 日 | 阅读 2 分钟 PermGen 代表 永久代 (Permanent Generation)。它是一种特殊的堆空间。它独立于主内存 (堆)。JVM 使用 PermGen 来跟踪已加载的类元数据。所有静态内容都由 JVM 存储在这个内存区域。静态内容可以是静态方法、静态对象的引用和基本变量。PermGen 还包含关于字节码、名称和 JIT 的信息。在发布 Java 7 之前,字符串常量池也存在于此空间中,在发布 Java 7 后则独立于此空间。 JVM 内存分为两部分,如下所示:
![]() PermGen 空间包含 JVM 持有的 Java 类的内部表示。永久代是垃圾数据,其收集方式与其他堆部分相同。它是一个特殊的内存区域,包含程序类的元数据以及程序的静态对象。它还包含在手动使用结束后被销毁的类加载器。这里的垃圾收集器效率不高,因此经常导致“Out of Memory: PermGen space”错误。 PermGen 空间的主要缺点是它的最大尺寸是固定的。对于 32 位和 64 位 JVM 版本,最大内存大小分别为 64 MB 和 82 MB。我们可以使用以下选项修改其默认大小:
让我们通过一个例子来生成 PermGen 空间错误并进行分析。 TestMemory.java 现在,将上述代码作为一个配置来运行。我们将在参数中添加以下命令: 参数值会将详细的垃圾收集输出重定向到一个文件 gc.log。 ![]() 点击“运行”后,我们将得到以下输出: 输出 ![]() |
继承的概念代表了 Java 中面向对象编程 (OOP) 的四大基本方面之一。子类可以通过继承机制继承其超类的所有字段和方法。该功能使开发人员能够重用代码块并创建可维护和可扩展的...
阅读 3 分钟
查找三个和为零的整数(Find Triplets with Zero Sum)问题涉及在一个数组中找出三个相加等于零的数字。这个问题在编码面试中很常见,有助于提高对数组操作和排序技术的理解。高效的解决方案通常会利用排序和双指针方法来达到最优效果...
阅读 12 分钟
要从 Java 中的 PDF 中提取内容,有许多可用的库,例如 Apache PDFBox。Apache PDFBox 是用于对 PDF 执行各种操作的最佳库之一,例如 PDF 到文本提取、PDF...
阅读 6 分钟
Java JDBC 选择题 JDBC 是一个 API(应用程序编程接口),它帮助程序员编写 Java 程序来连接数据库、从数据库检索数据,并在 Java 程序中对数据执行各种操作。它...
阅读 10 分钟
在本节中,我们将讨论 Java 中的标记接口、其用途、内置(Serializable、Cloneable 和 Remote 接口)以及带有示例的自定义标记接口。什么是标记接口?一个不包含方法、字段和常量的接口称为标记接口。换句话说,...
5 分钟阅读
Java 未打开是一个可能由于某些原因出现的错误或故障排除。但我们可以记住一些要点,这样在安装 Java 和打开它时,我们可能不会遇到这些问题。在本节中,我们将...
阅读 4 分钟
? 通过使用字符串字面量。示例:文件:StringPerformance.java public class StringPerformance { public static void main(String[] args) { long startTime = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { String str1 = "India"; String str2= "India"; } long endTime = System.currentTimeMillis(); System.out.println("创建字面量 String 所花费的时间:" + (endTime - startTime)...
阅读1分钟
这个谜题包含其他 8 个谜题的答案。玩家会得到一个 3x3 的棋盘,上面有 8 个棋子(每个棋子都标有 1 到 8 的数字)以及一个空格。要使棋子上的数字匹配...
阅读 13 分钟
Java 是一种流行的编程语言,广泛用于开发各种类型的应用程序。许多应用程序中的常见任务之一是从日历中获取日期。在本节中,我们将探讨如何从日历中获取日期...
阅读 3 分钟
如何在 Java 中获取字符串输入 Java Line() 方法 Scanner 类的 Line() 方法用于从用户那里获取字符串。它定义在 java.util.Scanner 类中。Line() 方法读取文本直到行尾。读取该行后,...
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India