> 本節介紹緩沖區的操作中,ByteBuffer的一些用法。
## ByteBuffer
- 分配直接內容
- 包裝wrap數據的處理
### 緩沖區操作
使用allocateDirect()方法創建的直接緩沖區如何釋放內存呢?有兩種辦法,一種是手動釋放空間,另一種就是交給JVM進行處理。
java進程分配直接緩沖區,在java進程結束后也不會馬上回收內存,而是會在某個時刻觸發GC垃圾回收器進行內存的回收。
#### 壓縮緩沖區
使用compact()可以進行緩沖區壓縮。

#### order(ByteOrder bo)方法
作用:設置字節的排列順序。
不同的CPU在讀取字節時的順序是不一樣的,有的CPU從高位開始讀,而有的CPU從低位開始讀,當這兩種CPU傳遞數據時就要將字節排列的順序進行統一。
> 字節順序
> ByteOrder order()方法的作用:獲取此緩沖區的字節順序。新創建的字節緩沖區的順序始終為BIG_ENDIAN。在讀寫多字節值以及為此字節緩沖區創建視圖緩沖區時,使用該字節順序。
> 1. `public static final ByteOrder BIG_ENDIAN`:表示BIG-ENDIAN字節順序的常量。按照此順序,多字節值的字節順序是從最高有效位到最低有效位的。
> 2. `public static final ByteOrder LITTLE_ENDIAN`:表示LITTLE-ENDIAN字節順序的常量。按照此順序,多字節值的字節順序是從最低有效位到最高有效位的
#### 比較緩沖區的內容
比較緩沖區的內容是否相同有兩種方法:equals()和compareTo()。
- 前言
- 第一部分 計算機網絡與操作系統
- 大量的 TIME_WAIT 狀態 TCP 連接,對業務有什么影響?怎么處理?
- 性能占用
- 第二部分 Java基礎
- 2-1 JVM
- JVM整體結構
- 方法區
- JVM的生命周期
- 堆對象結構
- 垃圾回收
- 調優案例
- 類加載機制
- 執行引擎
- 類文件結構
- 2-2 多線程
- 線程狀態
- 鎖與阻塞
- 悲觀鎖與樂觀鎖
- 阻塞隊列
- ConcurrentHashMap
- 線程池
- 線程框架
- 徹底搞懂AQS
- 2-3 Spring框架基礎
- Spring注解
- Spring IoC 和 AOP 的理解
- Spring工作原理
- 2-4 集合框架
- 死磕HashMap
- 第三部分 高級編程
- Socket與NIO
- 緩沖區
- Bybuffer
- BIO、NIO、AIO
- Netty的工作原理
- Netty高性能原因
- Rabbitmq
- mq消息可靠性是怎么保障的?
- 認證授權
- 第四部分 數據存儲
- 第1章 mysql篇
- MySQL主從一致性
- Mysql的數據組織方式
- Mysql性能優化
- 數據庫中的樂觀鎖與悲觀鎖
- 深度分頁
- 從一條SQL語句看Mysql的工作流程
- 第2章 Redis
- Redis緩存
- redis key過期策略
- 數據持久化
- 基于Redis分布式鎖的實現
- Redis高可用
- 第3章 Elasticsearch
- 全文查詢為什么快
- battle with mysql
- 第五部分 數據結構與算法
- 常見算法題
- 基于數組實現的一個隊列
- 第六部分 真實面試案例
- 初級開發面試材料
- 答案部分
- 現場編碼
- 第七部分 面試官角度
- 第八部分 計算機基礎
- 第九部分 微服務
- OpenFeign工作原理