document.write('
B
[解析] 字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。通常有Little-Endian(小端)与BigEndian(大端)两种方式。以下将分别对这两种方式进行介绍。
 (1)Little-Endian
 Little-Endian(小端)是指低位字节存放在内存的低地址端,高位字节存放在内存的高地址端。例如,当按照小端模式存储时,
十六进制数字表示0x12 34 56 78在内存中的存储方式为:
 低地址------------------>高地址
 0x78 | 0x56 | 0x34 | 0x12
 (2)Big-Endian
 Big-Endian(大端)是指高位字节存放在内存的低地址端,低位字节存放在内存的高地址端。例如,当按照大端模式存储时,
十六进制数字表示0x12 34 56 78在内存中的存储方式为:
 低地址------------------>高地址
 0x12 | 0x34 | 0x56 | 0x78
 为什么要区分大小端呢?因为在计算机系统中,所有的存储都是以字节(一个字节占用8bit)为单位进行存储的,但是在大部分
编程语言中,除了占1个字节的char数据类型外,还有占多个字节的其他数据类型,例如,在Java语言中,short类型占2个字
节,int类型占4个字节。那么如何存储这些占用多个字节的数据呢?既可以使用大端的方式存储,也可以使用小端的方式来存
储。不同的编程语言,不同的处理器可能会采用不同的存储方式。
 Java是一种跨平台的语言,Java字节序指的是在Java虚拟机中多字节类型数据的存放顺序,Java字节序是Big-Endian(大
端)。所以,选项B正确。
 既然Java语言的字节序是Big-Endian(大端),那么如何获知Java语言的字节序呢?可以通过查看字节数组在内存中存放的方式
来获知。示例代码如下:
import java.io.*;
public class Test
{
public static void main(String[] args) throws IOException
{
byte[] arr=new byte[4];
arr[0]=0x78;
arr[1]=0x56;
arr[2]=0x34;
arr[3]=0x12;
ByteArrayInputStream bais=new ByteArrayInputStream(arr);
DataInputStream dis=new DataInputStream(bais);
System.out.println(Integer.toHexString(dis.readlnt0()));
}
}
程序的运行结果为:
78563412
 从上面的运行结果可以看出,高位字节(78)存储在低位地址,显然是大端。
 虽然Java使用的是大端,在一些情况下有可能也需要获取CPU是大端还是小端,Java提供了一个类库可以用来获取CPU是大

端还是小端:java.nio.ByteOrder.nativeOrder()。 

');