- Java 采用的是大端還是小端?
大端(不清楚)
什么大小端?
大小端在計算機業界,Endian表示數據在存儲器中的存放順序。百度百科如下敘述之:
大端模式,是指數據的高字節保存在內存的低地址中,而數據的低字節保存在內存的高地址中,這樣的存儲模式有點兒類似于把數據當作字符串順序處理:地址由小向大增加,而數據從高位往低位放;
小端模式,是指數據的高字節保存在內存的高地址中,而數據的低字節保存在內存的低地址中,這種存儲模式將地址的高低和數據位權有效地結合起來,高地址部分權值高,低地址部分權值低,和我們的邏輯方法一致。
- ByteBuffer 中的字節序是什么?
2.1 字節序
讀寫其它類型的數據牽涉到字節序問題,ByteBuffer會按其字節序(大字節序或小字節序)寫入或讀出一個其它
類型的數據(int,long…)。字節序可以用order方法來取得和設置:
ByteOrder order() //返回ByteBuffer的字節序。
ByteBuffer order(ByteOrder bo) // 設置ByteBuffer的字節序。
2.2 ByteOrder
用來表示ByteBuffer字節序的類,可將其看成java中的enum類型。主要定義了下面幾個static方法和屬性:
ByteOrder BIG_ENDIAN 代表大字節序的ByteOrder。
ByteOrder LITTLE_ENDIAN 代表小字節序的ByteOrder。
ByteOrder nativeOrder() 返回當前硬件平臺的字節序。