虚引用的作用主要是管理堆外内存, 堆外内存 堆外内存=操作系统内存-jvm内存,如下图 为什么要使用堆外内存? 在一些场景下,使用堆外内存,可以提高效率。比如零拷贝,传统java代码在读取网络数据时,网卡读取到的数据会先给存放到操作系统内存,然后操作系统将数据拷贝一份给jvm,这个效率非常低 当使用堆外内存时,就可以省略一次拷贝。 怎么使用堆外内存? DirectByteBuffer、虚引用