作为 Java 开发者,你需要了解的堆外内存知识

作为 Java 开发者,你需要了解的堆外内存知识
[原文来自:www.11jj.com]

本文来自作者  应书澜  GitChat 上分享 「深入解读 Java 堆外内存(直接内存)」

[本文来自:www.11jj.com]


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 操作方面的优势。

自媒体 微信号:11jj 扫描二维码关注公众号
爱八卦,爱爆料。

小编推荐

  1. 1

    乔四爷超了谁的车子(乔四爷多少岁)

    大家好,小豪今天来为大家解答乔四爷超了谁的车子以下问题,乔四爷多少岁很多人还不知道,现在让我们一起来看看吧!1、乔四缘何被查?最流行

  2. 2

    汉城为什么改名首尔(汉城为什么改名首尔大学)

    大家好,小乐今天来为大家解答汉城为什么改名首尔以下问题,汉城为什么改名首尔大学很多人还不知道,现在让我们一起来看看吧!1、 韩国为了推

  3. 3

    未预约,请勿前往!

    注重!姑苏博物馆本馆5月1日-4日已悉数约满!5月5日只有18:00-19:00还能预约姑苏博物馆西馆5月1日-3日已约满5月4日、5日还有名额成功预约上的小伙伴

  4. 4

    国家励志奖学金颁发机构(国家励志奖学金个人先进事迹材料)

    大家好,小丽今天来为大家解答国家励志奖学金颁发机构以下问题,国家励志奖学金个人先进事迹材料很多人还不知道,现在让我们一起来看看吧!

  5. 5

    预防癌症,从“口”开始

    图片起原:中国疾控中心往期介绍最能预示癌症的20个示意,一旦发现要把稳癌症弗成怕,科学面临是要害中国生存率最低的癌症,一发现就是晚期?

  6. 6

    杯水车薪是什么意思(杯水车薪是什么意思形容什么生肖)

    大家好,小豪今天来为大家解答杯水车薪是什么意思以下问题,杯水车薪是什么意思形容什么生肖很多人还不知道,现在让我们一起来看看吧!1、杯

  7. 7

    清华大学、小红书、腾讯、阿里等招日语人才

    ‍‍工作榜单每日持续更新!国企、事业单元单子等热点岗位,国表里知名企业岗位包罗万象!联普日语社区力求天天为浩瀚求职小伙伴供应周全、

  8. 8

    大漠谣txt下载(大漠谣小说下载)

    大家好,小伟今天来为大家解答大漠谣txt下载以下问题,大漠谣小说下载很多人还不知道,现在让我们一起来看看吧!1、《大漠谣》网络网盘txt最新

Copyright 2024.依依自媒体,让大家了解更多图文资讯!