日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3.NIO_Buffer缓冲区

發布時間:2025/5/22 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.NIO_Buffer缓冲区 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?1.緩沖區(Buffer)

  一個用于特定基本數據類型的容器。由 java.nio 包定義的,所有緩沖區都是 Buffer 抽象類的子類,任何時候訪問 NIO 中

的數據,都是通過緩沖區進行操作

  在 Java NIO 中負責數據的存取。緩沖區就是數組。用于存儲不同數據類型的數據,據數據類型不同(boolean 除外) ,有以

下 Buffer 常用子類:

  

  上述緩沖區的管理方式幾乎一致,通過 allocate() 獲取緩沖區:

1.1.緩沖區的基本屬性 

  

  標記、位置、限制、容量遵守以下不變式: 0 <= mark <= position <= limit <= capacity

1.2.緩沖區的常用方法:

  

1.2.緩沖區的數據操作:

  Buffer 所有子類提供了兩個用于數據操作的方法:get() 與 put() 方法  

  

  

1.3.直接緩沖區和非直接緩沖區:

  非直接緩沖區:通過 allocate() 方法分配緩沖區,將緩沖區建立在 JVM 的內存中

  
??   直接緩沖區:通過 allocateDirect() 方法分配直接緩沖區,將緩沖區建立在物理內存中,可以提高效率

  

?

  NIO技術省去了復制的過程

  @Test
  public void test3(){
    //分配直接緩沖區
    ByteBuffer buf = ByteBuffer.allocateDirect(1024);
    System.out.println(buf.isDirect());
  }

  字節緩沖區是直接緩沖區還是非直接緩沖區可通過調用其 isDirect() 方法來確定。提供此方法是為了能夠在
性能關鍵型代碼中執行顯式緩沖區管理

  直接字節緩沖區還可以通過 FileChannel 的 map() 方法 將文件區域直接映射到內存中來創建。該方法返回
MappedByteBuffer

  

   

?

?

?


  

?

轉載于:https://www.cnblogs.com/yaboya/p/9172154.html

總結

以上是生活随笔為你收集整理的3.NIO_Buffer缓冲区的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。