1. JVM如何使用系统内存管理堆内存?
2.我们在java编程中需要注意哪些问题以防止堆空间问题?
答案 0 :(得分:3)
答案 1 :(得分:1)
java中的堆内存是什么?
当Java程序启动时,Java虚拟机会从中获取一些内存 操作系统。 Java虚拟机或JVM为所有人使用此内存 它的需要和部分内存是调用java堆内存。堆进来 Java通常位于地址空间的底部并向上移动。 每当我们使用new运算符或任何其他方法创建对象时 对象从堆中分配内存,当对象死亡或垃圾时 收集,内存回到Java中的堆空间
Jvm堆管理?
我们知道在堆内存和垃圾中创建了对象 collection是一个从Java Heap中删除死对象的过程 空间并将内存返回给Java中的Heap。为了垃圾 集合Heap分为三个主要区域,名为New 一代,旧的或终身的一代和彼尔姆空间。新一代 Java Heap是Java Heap内存的一部分,它是新创建的对象 存储,在应用过程中创建了许多对象和 死了,但那些仍然活着,他们被转移到老年或终身代 通过Java垃圾收集器线程对主要或完整的垃圾收集。 Java Heap的Perm空间是JVM存储有关类的元数据的地方 和方法,字符串池和类级别详细信息。你可以看到如何 垃圾收集在Java中工作,以获取有关Java中的Heap的更多信息 和垃圾收集。
要注意java编程以防止堆空间问题?
当JVM启动时,JVM堆空间等于堆的初始大小 由-Xms参数指定,作为应用程序进度的更多对象获取 创建并扩展堆空间以容纳新对象。 JVM 还定期运行垃圾收集器以从中回收内存 死对象。 JVM在Java中扩展了一些接近最大堆的堆 -Xmx指定的大小,如果没有剩余的内存 在Java堆中创建新对象,JVM抛出 java.lang.OutOfMemoryError和你的应用程序死了。扔之前 OutOfMemoryError Java堆中没有空格,JVM尝试运行垃圾 收集器释放任何可用的空间,但即使在那之后也不多 在Java中Heap上可用的空间导致OutOfMemoryError。至 解决此错误您需要了解您的应用程序对象 配置文件,即您正在创建哪种对象,哪些对象是 你可以使用探测器或堆分析器来获取多少内存等 解决Java中的OutOfMemoryError问题。 “java.lang.OutOfMemoryError: Java堆空间“错误消息表示Java堆没有 足够的空间,不能进一步扩大 “java.lang.OutOfMemoryError:PermGen space”出现错误消息 应用程序将永久生成Java Heap 无法加载类或分配实习字符串。
尝试使用静态变量和方法,因为它们共享通用内存。