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

我正在寻找一个在32位和64位系统上运行的 java应用程序,它主要处理IP地址.这些IP地址保持为整数,正常类型在64位平台上浪费了大量内存(是的,内存使用已经被证明是一个问题).即使在x64体系结构上,如何声明32位整数值仍然保持在32位?

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

解决方法

Java具有特定的数据类型宽度,以实现可移植性.即使在64位平台上,整数也是32位宽. Java language specification状态为 quite 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).

相关文章

Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Sh...
运行程序出现下面错误:HTTP Status 500 ------------------...
1、建立DM的profile,使用的模版在install_root/profileTempl...
使用dom4j解析XML时,要快速获取某个节点的数据,使用XPath是...
英文操作系统导致 Debug 下的变量查看时显示乱码,可通过改变...
eclipse中javascript报错问题处理:三个地方:<1&...