程序运行过程中无法申请到足够的内存而导致的一种错误。
OutOfMemoryError 异常: 除了程 序计数器外 , 虚拟机内 存的其他几 个运行时区 域都有发生OutOfMemoryError(OOM)异常的可能。
如 果 要 向 运 行 时 常 量 池 中 添 加 内 容 , 最 简 单 的 做 法 就 是 使 用 String.intern()这个 Native 方法。
该方法的作用是: 如果池中已经包含一个等于此 String 的字符串, 则返回代表池中这个字符串的 String 对象; 否则,将此 String 对象包含的字符串添加到常量池中, 并且返回此 String 对象的引用 。 由 于 常 量 池 分 配 在 方 法 区 内 , 我 们 可 以 通 过 -XX:PermSize 和-XX:MaxPermSize 限制方法区的大小, 从而间接限制其中常量池的容量。
基本上如果抛出 OutOfMemory 有两种原因: 1.内存泄露。 2.应用程序本身 就是需要这么多的内存。