直接内存 直接内存的释放和回收

直接内存
特点
不属于Java虚拟机管理,属于系统内存;属于操作系统,常见于NIO操作时,比如ByteBuffer【】用于数据缓冲区分配回收成本较高,但读写性能高;不受JVM内存回收管理
文件读写过程
java不具备磁盘读写的能力,因此需要调用操作系统提供的方法;java函数->本地方法,用户态->内核态
弊端:需要在系统内存和java堆内存都复制一份磁盘文件,浪费空间也降低传输效率。

直接内存是在系统内存和Java堆内存之间开辟出的一块共享区域,可以供操作系统和java代码访问。
好处:只需要缓冲一份磁盘文件,效率更高

内存溢出
​ 直接内存也会存在内存溢出的问题,比如下面的例子,在循环中不断申请一个100m的直接内存空间,把其加入list中,最终会造成直接内存不够,抛出直接内存溢出异常

可以在任务管理中查看到当前直接内存的大小

直接内存释放原理
java底层使用Unsa

直接内存 直接内存的释放和回收最先出现在Python成神之路

版权声明:
作者:ht
链接:https://www.techfm.club/p/24924.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>