写在前面
本文隶属于专栏《100个问题搞定Java虚拟机》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和文献引用请见100个问题搞定Java虚拟机
解答
直接内存又称堆外内存,我们可以通过NIO中的DirectByteBuffer实现直接内存的创建、使用和销毁。
本质上Java中操作直接内存只能通过sun.misc.Unsafe来进行。
补充
直接内存分配有什么限制?
本机直接内存的分配不会受到Java堆大小的限制,但是会受到本机总内存(包括RAM以及SWAP区或者分页文件)大小以及处理器寻址空间的限制。
直接内存可以通过jvm参数-XX:MaxDirectMemorySize控制。
Java直接内存是属于内核态还是用户态?
DirectByteBuffer属于user space,也就是用户态。