zoukankan      html  css  js  c++  java
  • ByteBuffer的介绍

    有一个问题需要明确:
    为什么要使用bytebuffer,它比byte比起来有什么优点?

    很简单:为了提高IO的效率。怎样提高的,这个还得google一下。

    记住几个标志的含义:
    position:当前指针的位置,也就是接下来要读写的位置。
    limit:限制,一个缓冲区可读写的范围。
    capability:容量,一个缓冲区最多的存放的字节数。
    mark:标志位,记录当前的位置。

    界限是用来控制当前读写的范围,如果容量为100,界限为10,则位置只能在0-10之间,即只能读写0-10之间的数据。


    几个操作对它们的影响:(操作都会影响到position,clear和flip会影响到limit
    flip():limit=position, position=0.中文意思是“翻转”。

    rewind():position=0,limit不变,可以用于重复读取一段数据. 扩展所有的数据,中文意思是“倒带”,也就是从头开始别的什么也不变。中文意思是“翻转”,也就是当前指,针在哪就在哪,然后从头开始。

     

    clear():position=0,limit=capability,也就是相当于清空了之前的内容,但是ByteBuffer中数组的内容在向里面写入之前是没有改变的.所有的位置与使用ByteBuffer.allocate(int capacity)是一样一样的。


    mark( ) 就是把当前的Position( ) 设置一个标记!

    reset( ) position=mark();

     

  • 相关阅读:
    Nexus OSS 3 搭建 Docker & Git LFS 仓库
    YARN FairScheduler
    k8s基本概念及使用
    k8s 基本使用
    10款非常实用的在线网站原型设计工具
    Spark常见问题及性能调优
    spark常见问题处理
    TensorFlow 基本使用
    c语言数组的操作
    在Android开发中遇到的MediaPlayer问题
  • 原文地址:https://www.cnblogs.com/lxzh/p/2559780.html
Copyright © 2011-2022 走看看