Java中的字节缓冲区?

时间:2015-03-13 07:03:16

标签: java buffer

因为我发现在java中无法使用无符号字节,并且它们基本上占用了与int相同的内存,所以当你通过数据包发送它们时真的有什么不同吗?

如果我通过tcp或udp 通过(Games.RealTimeMultiplayer.sendReliableMessage)发送一个Java字节这对我来说比仅发送一个整数来表示无符号字节更有益吗?

1 个答案:

答案 0 :(得分:3)

  

因为我发现在java中无法使用无符号字节

这是不正确的。有很多方法。您甚至可以使用byte来表示无符号字节。您只需要在需要它的地方执行映射; e.g。

    byte b = ...
    int unsigned = (b >= 0) ? b : (b + 256);
  

......基本上它们占用与int相同的内存。

这也是不正确的。 byte变量或字段都是如此。但是,byte数组中的字节占int数组中整数空间的1/4。

  

...当你通过数据包发送它们时真的有什么不同吗?

是的。通过网络发送的byte(以自然方式)占用通过网络发送的int的比特数的1/4。如果您将“8位数量”发送为32位,则会浪费网络带宽。