package java.nio;
/**
* 用于字节顺序的类型安全枚举。
*
* @author Mark Reinhold
* @author JSR-51 Expert Group
* @since 1.4
*/
public final class ByteOrder {
private String name;
private ByteOrder(String name) {
this.name = name;
}
/**
* 表示大端字节顺序的常数。
* 按照这个顺序,一个多字节值的字节是从最重要的到最不重要的顺序排列的。
* (将高序字节存储在起始地址)
* 如果我们将0x1234abcd写入到以0x0000开始的内存中,则结果为;
address big-endian little-endian
0x0000 0x12 0xcd
0x0001 0x34 0xab
0x0002 0xab 0x34
0x0003 0xcd 0x12
*/
public static final ByteOrder BIG_ENDIAN
= new ByteOrder("BIG_ENDIAN");
/**
* 表示小端字节顺序的常数。
* 在这个顺序中,多字节值的字节是从最不重要的顺序到最重要的。
*/
public static final ByteOrder LITTLE_ENDIAN
= new ByteOrder("LITTLE_ENDIAN");
/**
* 检索底层平台的本机字节顺序。
*
* <p> 定义此方法是为了使性能敏感的Java代码能够以与硬件相同的字节顺序分配直接缓冲区。
* 使用此类缓冲区时,本机代码库通常更有效。
* </p>
*
* @return The native byte order of the hardware upon which this Java
* virtual machine is running
*/
public static ByteOrder nativeOrder() {
return Bits.byteOrder();
}
/**
* 构造描述此对象的字符串。
*
* <p> 这个方法对BIG_ENDIAN返回字符串“BIG_ENDIAN”,对LITTLE_ENDIAN返回字符串“LITTLE_ENDIAN”。
* </p>
*
* @return The specified string
*/
public String toString() {
return name;
}
}