首页 > 试题广场 >

关于OutOfMemoryError,下面说法正确的是()?

[不定项选择题]
关于OutOfMemoryError,下面说法正确的是()?
  • java.lang.OutOfMemoryError: PermGen space 增加-XX:MaxPermSize这个参数的值的话,这个问题通常会得到解决。
  • java.lang.OutOfMemoryError: Requested array size exceeds VM limit当你正准备创建一个超过虚拟机允许的大小的数组时,这条错误将会出现
  • java.lang.OutOfMemoryError: Java heap space 一般情况下解决这个问题最快的方法就是通过-Xmx参数来增加堆的大小
  • java.lang.OutOfMemoryError: nativeGetNewTLA这个异常只有在jRockit虚拟机时才会碰到
菜鸡的我根本看不懂这个问题啊。捂脸
发表于 2017-08-19 12:22:39 回复(13)
关于此题,《深入理解java虚拟机》有关于OOM(OutOfMemory)问题的解释
A:属于运行时常量池导致的溢出,设置-XX:MaxPermSize可以解决这个问题,
B:属于堆空间不足导致的错误,问题比较少见,解决方式和C相同,
C:属于java堆内存问题,一般的手段是通过内存映像分析工具,对Dump出来的堆转储存快照进行分析,重点是确认内存中的对象是否是有必要的,也就是要判断是出现了内存泄漏,还是出现了内存溢出,如果是内存列楼,通过工具检查泄露对象打GC Roots的引用链信息,可以准确的确定出泄露代码的位置,不存在泄露,就应该检查虚拟机的堆参数,如果可以继续调大,可以设置-Xmx解决问题
D:java.lang.OutOfMemoryError: nativeGetNewTLA指当虚拟机不能分配新的线程本地空间(Thread Local Area)的时候错误信息,此错误是线程申请一个新的TLA时产生的,这个异常一般只会发生在jRockit虚拟机,只有过于绝对。
发表于 2018-02-26 11:21:43 回复(3)
java.lang.OutOfMemoryError: PermGen space

查了一下为"永久代"内存大小不足,“永久代”的解释应该为JVM中的方法区,主要用于存储类信息,常量,静态变量,即时编译器编译后代码等。本错误仅限于Hotspot虚拟机,本区进行垃圾回收很少,不够直接加大简单粗暴。

java.lang.OutOfMemoryError: Requested array size exceeds VM limit

直接翻译报错信息:数组过长导致堆内存溢出,加大堆内存或者减少数组长度。

java.lang.OutOfMemoryError: Java heap space

堆内存不足,直接增大堆内存。

java.lang.OutOfMemoryError: nativeGetNewTLA

这个不懂,不做评论

编辑于 2017-08-22 12:33:05 回复(5)
我居然蒙对了。
发表于 2017-08-22 15:23:13 回复(6)
线程申请新的TLA时发生的
TLA 全称是thread local area(使用相同的变量的每个线程都创建不同的存储)
这个错误经常是发生JRockitJVM上的,如果都用hotspot或者J9JVM可能不会遇到这个问题。
发表于 2017-08-18 18:11:05 回复(1)
JDK 8没有Permanent Generation,取而代之的是元空间(MetaSpace),所以以后应该不会遇到PermGen了。
详见 
其中http://openjdk.java.net/jeps/122 移除了永久代
编辑于 2017-09-06 15:35:38 回复(0)
A、java.lang.OutOfMemoryError: PermGen space 属于运行时常量池溢出,设置-XX:MaxPermSize可以解决。
B、java.lang.OutOfMemoryError: Requested array size exceeds VM limit 数组过长导致堆内存溢出,加大堆内存或减少数组长度。
C、java.lang.OutOfMemoryError: Java heap space堆内存不足,加大堆内存。
D、java.lang.OutOfMemoryError: nativeGetNewTLA指当虚拟机不能分配新的线程本地空间(Thread Local Area)的时候错误信息,此错误是线程申请一个新的TLA时产生的,这个异常一般只会发生在jRockit虚拟机,只有过于绝对。
编辑于 2022-03-10 10:03:25 回复(0)
D在深入理解jvm中有介绍吗。。。
以下来自百度:java.lang.OutOfMemoryError: nativeGetNewTLA指当虚拟机不能分配新的线程本地空间(Thread Local Area)的时候错误信息。这个异常只有在jRockit虚拟机时才会碰到。线程本地空间是多线程程序里面为了更有效的进行内存分配而建立的缓存。每一个线程都有一份自己的缓存,当这个线程要创建对象的时候,就在这上面分配。如果你有很多线程同时并发,又要创建大量的对象,可能会出现这个问题,这种情况下你可以调整一下-XXtlaSize这个参数。
为什么D错了啊

编辑于 2018-01-01 22:02:43 回复(2)
答案ABC,我选个D🤔
发表于 2020-10-25 22:08:45 回复(0)
我没学过这个点,然后把这题当英文翻译了一下。猜对了AB。C本来也有想过的,不过分析的时候觉得会不会回收空间会快一些?然后就没选了。一砸大腿,唉~学艺不精,考虑不周-.-
发表于 2019-08-01 06:35:07 回复(0)
java.lang.OutOfMemoryError: nativeGetNewTLA指当虚拟机不能分配新的线程本地空间(Thread Local Area)的时候错误信息。这个异常只有在jRockit虚拟机时才会碰到。线程本地空间是多线程程序里面为了更有效的进行内存分配而建立的缓存。每一个线程都有一份自己的缓存,当这个线程要创建对象的时候,就在这上面分配。如果你有很多线程同时并发,又要创建大量的对象,可能会出现这个问题,这种情况下你可以调整一下-XXtlaSize这个参数。
发表于 2019-02-18 23:53:21 回复(0)
这题答案到底是啥? d选项是错的吧。
发表于 2022-10-14 09:39:34 回复(0)
为什么内存溢出不找代码原因,调参不一定能解决呀,比如c选项,堆内存溢出了可能内存泄漏呀,既然这样,调的再大,总有一刻会用光,
发表于 2020-10-27 20:10:16 回复(1)
其实我也不知道怎么做,但是看到D选项那个“只有在”这三个字的时候,觉得太过肯定的一定不对。然后就做对了。捂脸。
发表于 2019-07-09 15:15:45 回复(0)
关于此题,《深入理解java虚拟机》有关于OOM(OutOfMemory)问题的解释 A:属于运行时常量池导致的溢出,设置-XX:MaxPermSize可以解决这个问题, B:属于堆空间不足导致的错误,问题比较少见,解决方式和C相同, C:属于java堆内存问题,一般的手段是通过内存映像分析工具,对Dump出来的堆转储存快照进行分析,重点是确认内存中的对象是否是有必要的,也就是要判断是出现了内存泄漏,还是出现了内存溢出,如果是内存列楼,通过工具检查泄露对象打GC Roots的引用链信息,可以准确的确定出泄露代码的位置,不存在泄露,就应该检查虚拟机的堆参数,如果可以继续调大,可以设置-Xmx解决问题 D:java.lang.OutOfMemoryError: nativeGetNewTLA指当虚拟机不能分配新的线程本地空间(Thread Local Area)的时候错误信息,此错误是线程申请一个新的TLA时产生的,这个异常一般只会发生在jRockit虚拟机,只有过于绝对。
发表于 2024-08-12 18:41:36 回复(0)
D对不对,如果不对怎么还没改过来
发表于 2023-09-22 13:52:38 回复(0)
ac非常有歧义,这根本没有解决问题,而只是在拖延问题爆发的时间
发表于 2023-08-30 16:12:03 回复(0)
Java 虚拟机(JVM)中的 Xmx 参数用于设置最大堆内存大小
1. Xms 参数:用于设置 Java 堆的初始大小。
2. XX:MaxMetaspaceSize 参数:用于控制 Metaspace 的最大大小。
3. XX:PermSize 参数:用于设置永久代的初始大小。
4. XX:MaxPermSize 参数:用于设置永久代的最大大小。
5. XX:MaxDirectMemorySize 参数:用于设置直接内存的最大大小。
初始大小是在启动 Java 应用程序时分配的内存大小,最小大小是在应用程序执行时动态调整的

发表于 2023-05-17 15:52:39 回复(0)
java.lang.OutOfMemoryError: nativeGetNewTLA指当虚拟机不能分配新的线程本地空间(Thread Local Area)的时候错误信息,此错误是线程申请一个新的TLA时产生的,这个异常一般只会发生在jRockit虚拟机,只有过于绝对。
发表于 2022-09-15 08:24:02 回复(0)
碰到虚拟机的题目就死,人麻了
发表于 2022-08-18 10:47:33 回复(0)