ByteBuffer的allocate和allocateDirect

ByteBuffer的allocate和allocateDirect在Java中当我们要对数据进行更底层的操作时,一般是操作数据的字节(byte)形式,这时经常会用到ByteBuffer这样一个类。ByteBuffer提供了两种静态实例方式:Java代码publics

大家好,又见面了,我是你们的朋友全栈君。

在Java中当我们要对数据进行更底层的操作时,一般是操作数据的字节(byte)形式,这时经常会用到ByteBuffer这样一个类。ByteBuffer提供了两种静态实例方式: 

Java代码  
收藏代码

  1. public static ByteBuffer allocate(int capacity)  
  2. public static ByteBuffer allocateDirect(int capacity)  

为什么要提供两种方式呢?这与Java的内存使用机制有关。第一种分配方式产生的内存开销是在JVM中的,而另外一种的分配方式产生的开销在JVM之外,以就是系统级的内存分配。当Java程序接收到外部传来的数据时,首先是被系统内存所获取,然后在由系统内存复制复制到JVM内存中供Java程序使用。所以在另外一种分配方式中,能够省去复制这一步操作,效率上会有所提高。可是系统级内存的分配比起JVM内存的分配要耗时得多,所以并非不论什么时候allocateDirect的操作效率都是最高的。以下是一个不同容量情况下两种分配方式的操作时间对照: 

<span role="heading" aria-level="2">ByteBuffer的allocate和allocateDirect 

由图能够看出,当操作数据量非常小时,两种分配方式操作使用时间基本是同样的,第一种方式有时可能会更快,可是当数据量非常大时,另外一种方式会远远大于第一种的分配方式。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155801.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux rsyslogd服务以及日志文件「建议收藏」

    Linux rsyslogd服务以及日志文件「建议收藏」命令名称:ln命令英文原意:link命令所在路径:/bin/link执行权限:所有用户语法:ln-s[源文件][目标文件]-s创建软链接功能描述:产生链接文件有两种文件类型,软链接文件和硬链接文件,产生这样两种链接文件命令就是ln,产生硬链接不需要加任何的选项,直接ln[源文件][目标文件],目标文件就是要生成的硬链接文件名。软链接需要加上…

    2022年8月15日
    4
  • tof测距精度可以达到多少_毫米波雷达成像

    tof测距精度可以达到多少_毫米波雷达成像Tof,结构光,三角测距,RGBD,双目,激光雷达,毫米波雷达一文总结距离测量算法解析TOF飞行时间测距法超声波毫米波雷达激光雷达最近在做一些无人车相关的工作,对其中的一些基础技术做了些总结和归纳,主要涉及以下技术,将会分两篇文章进行介绍超声波测距毫米波雷达激光雷达固态雷达RGBD摄像头双目摄像头单目摄像头TOF飞行时间三角测距结构光虽然这些词汇一起出现的频率很…

    2022年9月15日
    4
  • java snmp walk,SNMPWALK 用法详解

    java snmp walk,SNMPWALK 用法详解(1)Net-SNMPSNMPWALK(1)NAMEsnmpwalk-communicateswithanetworkentityusingSNMPGETNEXTrequests.SYNOPSISsnmpwalk[APPL…

    2022年6月29日
    29
  • ABAP WDA

    ABAP WDA一、20181217-20181226笔记selection_options和alv 二、相关服务1、事务码:SICF默认SERVICE,执行。Service:default_host/sap/option/*default_host/sap/public/bc/*default_host/sap/bc/wdvddefault_host/sap/bc/webdynp…

    2022年7月12日
    20
  • 下载安装 Python ,含详细步骤[通俗易懂]

    下载安装 Python ,含详细步骤[通俗易懂]1、到官网下载python安装包官网地址:https://www.python.org/downloads/点击“Windows”点击“DownloadWindowsinstaller

    2022年7月3日
    27
  • java protostuff 序列化_使用Protostuff序列化

    java protostuff 序列化_使用Protostuff序列化序rpc调用,有多种序列化的方式,通用如json,mongodb使用的bson;java方面的,比如Java默认的序列化,比如hessian;还有跨语言的,比如thrift、protocolbuf。thrift和pb的好处是序列化后size比较小,但是缺点是得生成java代码,这个挺鸡肋的,所以不管二者运行时效率有多高,开发效率相对比较低的。像hessian,是有一些在用,但是感觉不如pb那样强大…

    2022年5月5日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号