[原文来自:www.11jj.com]
本文来自作者 应书澜 在 GitChat 上分享 「深入解读 Java 堆外内存(直接内存)」
1. 引言
很久没有遇到堆外内存相关的问题了,五一假期刚结束,便不期而遇,以前也处理过几次这类问题,但都没有总结,觉得是时候总结一下了。
先来看一个 Demo:在 Demo 中分配堆外内存用的是 allocateDirect 方法,但其内部调用的是 DirectByteBuffer,换言之,DirectByteBuffer 才是实际操作堆外内存的类,因此,本场 Chat 将围绕 DirectByteBuffer 展开。
import java.nio.ByteBuffer;public class Demo { public static void main( String[] args ) { //分配一块1024Bytes的堆外内存(直接内存) //allocateDirect方法内部调用的是DirectByteBuffer ByteBuffer buffer=ByteBuffer.allocateDirect(1024); System.out.println(buffer.capacity()); //向堆外内存中读写数据 buffer.putInt(0,2018); System.out.println(buffer.getInt(0)); }}2. 什么是堆外内存?
Java 开发者一般都知道堆内存,但却未必了解堆外内存。事实上,除了堆内存,Java 还可以使用堆外内存,也称直接内存(Direct Memory)。
顾名思义,堆外内存是在 JVM Heap 之外分配的内存块,并不是 JVM 规范中定义的内存区域,堆外内存用得并不多,但十分重要。
读者也许会有一个疑问:既然已经有堆内存,为什么还要用堆外内存呢?这主要是因为堆外内存在 IO 操作方面的优势。
大家好,小豪今天来为大家解答乔四爷超了谁的车子以下问题,乔四爷多少岁很多人还不知道,现在让我们一起来看看吧!1、乔四缘何被查?最流行
大家好,小乐今天来为大家解答汉城为什么改名首尔以下问题,汉城为什么改名首尔大学很多人还不知道,现在让我们一起来看看吧!1、 韩国为了推
注重!姑苏博物馆本馆5月1日-4日已悉数约满!5月5日只有18:00-19:00还能预约姑苏博物馆西馆5月1日-3日已约满5月4日、5日还有名额成功预约上的小伙伴
大家好,小丽今天来为大家解答国家励志奖学金颁发机构以下问题,国家励志奖学金个人先进事迹材料很多人还不知道,现在让我们一起来看看吧!
图片起原:中国疾控中心往期介绍最能预示癌症的20个示意,一旦发现要把稳癌症弗成怕,科学面临是要害中国生存率最低的癌症,一发现就是晚期?
大家好,小豪今天来为大家解答杯水车薪是什么意思以下问题,杯水车薪是什么意思形容什么生肖很多人还不知道,现在让我们一起来看看吧!1、杯
工作榜单每日持续更新!国企、事业单元单子等热点岗位,国表里知名企业岗位包罗万象!联普日语社区力求天天为浩瀚求职小伙伴供应周全、
大家好,小伟今天来为大家解答大漠谣txt下载以下问题,大漠谣小说下载很多人还不知道,现在让我们一起来看看吧!1、《大漠谣》网络网盘txt最新
Copyright 2024.依依自媒体,让大家了解更多图文资讯!