Java 大小端模式
何谓Java 大小端模式呢?
所谓大端模式:指数据的高位存储在内存的低字节位,数据的低位存储在内存的高字节位。这个思维有点像一个逆向的思维。
所谓小端模式:指数据的低位存储在内存的低字节位,数据的高位存储在内存的高字节位。这个思维符合一般人的思维。
问题的出现:
在做毕设的时候,出现了下面的一个问题:
在读一个wav文件的header,总共44个字节,如下:
我使用DataInputStream去读取wav文件的头信息,如下:
通过调试,发现size,channels等等的信息都是不正确的。因为channels只可能是1或者2,不可能是512.后来经过提醒,是java的大小端的问题。后来修改为以下的代码:
通过小端模式来读取数据就正常了。
所以,在网络传输中,可能需要考虑大小端的问题。当然,每种语言默认是使用大端还是小端模式是不确定的。