JVM学习笔记——内存结构篇( 十 )

禁用显式回收的影响其实在正常情况下我们的显式回收是不被允许开启的,因为可能会导致我们的部分信息损失:
package cn.itcast.jvm.t1.direct;import java.io.IOException;import java.nio.ByteBuffer;/** * 禁用显式回收对直接内存的影响 */public class Demo1_26 {static int _1Gb = 1024 * 1024 * 1024;/** -XX:+DisableExplicitGC 禁止显式回收配置*/public static void main(String[] args) throws IOException {ByteBuffer byteBuffer = ByteBuffer.allocateDirect(_1Gb);System.out.println("分配完毕...");System.in.read();System.out.println("开始释放...");byteBuffer = null;System.gc(); // 显式的垃圾回收 , Full GC 这时这个操作是无效的System.in.read();// 那么直接内存只能等到系统内存满了之后自动调用被动垃圾回收,但那样直接内存会占用大量空间// 但是我们又希望清除掉这个直接内存 , 那么我们这时就只能手动采用unsafe的方法了,这里就不做代码展示了~// unsafe.freeMemory(address);}}结束语到这里我们JVM的内存结构篇就结束了,希望能为你带来帮助~
附录该文章属于学习内容,具体参考B站黑马程序员满老师的JVM完整教程
这里附上视频链接:01_什么是jvm_哔哩哔哩_bilibili

推荐阅读