0
点赞
收藏
分享

微信扫一扫

Java的本地内存 直接内存 元空间


Java的本地内存 直接内存 元空间_开发语言

Java虚拟机在执行的时候会把管理的内存分配到不同的区域,这些区域称为虚拟机内存;同时对于虚拟机没有直接管理的物理内存,也会有一定的利用,这些被利用但不在虚拟机内存的地方称为本地内存。

  • JVM内存:受虚拟机内存大小的参数控制,当大小超过参数设置的大小时会报OOM。
  • 本地内存:本地内存不受虚拟机内存参数的限制,只受物理内存容量的限制;虽然不受参数的限制,如果所占内存超过物理内存,仍然会报OOM。
  1. 虚拟机内存
  2. 本地内存: 直接内存 + 元空间
  • 直接内存
  • 直接内存不是虚拟机运行时数据区的一部分,直接内存是在Java堆外地、直接向系统申请的内存区域。
  • 直接内存使用NIO,通过存在堆中的DirectByteBuffer操作Native内存,所以读写性能高。
  • 频繁读写操作推荐使用直接内存。
  • NIO允许Java程序使用直接内存,用于数据换成。
  • 直接内存不受JVM管理,但是系统内存是有限的,物理内存不足时会报OOM。
  • 元空间
    元空间不在虚拟机中,而是使用本地内存,JVM不会再出现方法区的内存溢出问题。


举报

相关推荐

0 条评论