有人能解释一下在java中使用数字类型的小端或大端表示的影响吗?

有人能解释一下在java中使用数字类型的小端或大端表示的影响吗?,java,serialization,Java,Serialization,我试图理解中使用的序列化机制。 我注意到,当序列化任何数字类型Integer/Long/Short时,它会通过XXX.reverseBytes方法转换为reverseBytes。它是某种优化吗?它与优化无关。它是关于如何将多字节数值存储为单字节序列的 有关的详细信息,请参阅这篇维基文章。我没有发布答案,因为我不知道在这种情况下到底发生了什么。但事实是,当机器在内存中存储32位、64位或16位整数时,有些机器会将其最高有效位存储在最低地址big-endian的字节中,有些机器会将其最低有效位存储在

我试图理解中使用的序列化机制。
我注意到,当序列化任何数字类型Integer/Long/Short时,它会通过XXX.reverseBytes方法转换为reverseBytes。它是某种优化吗?

它与优化无关。它是关于如何将多字节数值存储为单字节序列的


有关的详细信息,请参阅这篇维基文章。

我没有发布答案,因为我不知道在这种情况下到底发生了什么。但事实是,当机器在内存中存储32位、64位或16位整数时,有些机器会将其最高有效位存储在最低地址big-endian的字节中,有些机器会将其最低有效位存储在最低地址little-endian的字节中。当你在一台机器上发送或存储可能被另一台机器读取的字节时,必须有一个标准的endianness,这意味着一些机器必须颠倒字节顺序。在我的情况下,对象将在一台机器上创建和使用,所以我想它对我没有用?好吧,你永远不会知道你或其他人将来可能会决定在分布式系统上启动你的应用程序。但你是对的,它可能没有用。我对RoringBitmap一无所知,所以我不知道是否有使用本机机器顺序的选项,即关闭字节反转。作者可能只是想遵循标准的网络字节顺序,即BigEndian。