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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Spring Cloud-鸿鹄Cloud分布式微服务云系统—架构图[通俗易懂]

    Spring Cloud-鸿鹄Cloud分布式微服务云系统—架构图

    2022年4月2日
  • python zipfile_Python 学习入门(16)—— zipfile

    python zipfile_Python 学习入门(16)—— zipfilezipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高。zipfile里有两个非常重要的class,分别是ZipFile和ZipInfo,在绝大多数的情况下,只需要使用这两个class就可以。1)ZipFile是主要的类,用来创建和读取zip文件;2)ZipInfo是存储的zip文件的每个文件的信息的。1)简单应用如果你仅…

    2022年9月17日
  • 搭建 Drupal 个人网站的图文教程

    搭建 Drupal 个人网站的图文教程操作场景Drupal是使用PHP语言编写的开源内容管理框架(CMF),由内容管理系统(CMS)及PHP开发框架(Framework)共同构成。Drupal具备强大的定制化开发能力,您可使用Drupal作为个人或团体网站开发平台。本文档介绍如何在腾讯云云服务器(CVM)上手动搭建Drupal个人网站。进行手动搭建Drupal个人网站需要熟悉Linux命令,例如Cen…

    2022年6月11日
  • 语义分割 实例分割 全景分割_语义分割应用场景

    语义分割 实例分割 全景分割_语义分割应用场景之前看过一篇使用分割思想进行目标检测,所以这里补习下一些分割相关的基础知识。这里重点说下语义分割、实力分割和全景分割的区别。1、semanticsegmentation(语义分割)通常意义上的目标分割指的就是语义分割,图像语义分割,简而言之就是对一张图片上的所有像素点进行分类语义分割(下图左)就是需要区分到图中每一点像素点,而不仅仅是矩形框框住了。但是同一物体的不同实例不需要单独分…

    2022年8月21日
  • 推荐一款博客备份工具!

    推荐一款博客备份工具!网友老紫竹开发了一个csdn博客备份工具,现在推荐给大家,有需要备份博客的可以点击下面的链接使用该工具。在此,我们感谢老紫竹为博客所作出的贡献!同时我们也欢迎其他网友来开发各种实用的博客工具,然后分享给大家使用!备份工具地址:http://www.java2000.net/csdn/blogbackup.jsp…

    2022年7月25日
  • idea tomcat8.5乱码_启动tomcat乱码

    idea tomcat8.5乱码_启动tomcat乱码打开tomcat安装目录conf/logging.properties,将所有的GBK内容改为UTF-8修改IDEA配置属性HELP->EditCustomVMOptions->添加一行->重启IDEA-Dfile.encoding=UTF-8效果图帮助到你的话,点个赞,鼓励一下,欢迎加入我的置顶博客设置的技术交流群。…

    2022年10月17日

发表回复

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

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