gpt4 book ai didi

java - Java 中的字节缓冲区?

转载 作者:行者123 更新时间:2023-12-01 22:24:44 25 4
gpt4 key购买 nike

由于我发现在 java 中不可能有无符号字节,并且本质上它们与 int 占用相同的内存,所以当您通过数据包发送它们时真的有什么区别吗?

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

最佳答案

Since I found out that it's impossible to have unsigned bytes in java

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

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

... and that essentially they take up the same memory as an int.

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

... is there really any difference when you send them over a packet?

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

关于java - Java 中的字节缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29026585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com