加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 03:01:15 所属栏目:Java 来源:网络整理
导读:我正在寻找一个在32位和64位系统上运行的 java应用程序,它主要处理IP地址.这些IP地址保持为整数,正常类型在64位平台上浪费了大量内存(是的,内存使用已经被证明是一个问题).即使在x64体系结构上,如何声明32位整数值仍然保持在32位? 因为我是一个java新手,如
我正在寻找一个在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具有Inet4Address和Inet6Address,具体取决于您的需求(以及它们的共同祖先,InetAddress).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读