gpt4 book ai didi

java - 如何在 java 中声明一个 32 位整数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:38:26 24 4
gpt4 key购买 nike

我正在查看一个在 32 位和 64 位系统上运行的 java 应用程序,它主要处理 IP 地址。这些 IP 地址以整数形式保存,而正常类型在 64 位平台上会浪费大量内存(是的,内存使用已被证明是这里的一个问题)。如何声明即使在 x64 架构上也保持 32 位的 32 位整数值?

因为我是一个 Java 新手,如果有一个内置类型已经设计用于处理 IP 地址,请随时向我指出;)

最佳答案

Java 的数据类型具有特定 宽度,以实现可移植性。即使在 64 位平台上,整数也是 32 位宽。 Java language specificationquite clearly (在我看来,稍微解释一下以提高可读性):

The integral types are byte, short, int, and long, whose values are respectively 8-bit, 16-bit, 32-bit and 64-bit signed two's-complement integers, and char, whose values are 16-bit unsigned integers representing UTF-16 code units.

这可以说是由于在 C 中发现了许多可移植性问题,Java 希望避免整数的不同宽度(甚至编码,如二进制补码、个的补码和符号/大小),特别是因为它是为了运行在尽可能多的不同平台上。

关于处理 IP 地址的内置类型,Java 有 Inet4AddressInet6Address ,取决于您的需求(以及它们的共同祖先 InetAddress )。

关于java - 如何在 java 中声明一个 32 位整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4065776/

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