概述
不是虚拟机运行时数据区的一部分, 也不是虚拟机规范中定义的内存区域。
直接内存是再java堆外的、直接向系统申请的内存空间。
来源于NIO, 通过存在堆中的DirectByteBuffer操作Native内存。
通常, 访问直接内存的速度会优于java堆。 即读写性能高。
- 出于性能考虑, 读写频繁的场合可能会考虑使用直接内存。
- java 的NIO库允许java程序使用直接内u才能, 用于数据缓冲区。
- 有了NIO时, 操作系统划出的直接缓存区, 可以被java代码直接访问, 只有一份, NIO适合对大文件的读写操作。
- NIO, 开辟暂时的缓冲内存可能会报OOM
- 内存