使用64位jdk时的整数范围



正如我所理解的,两个32位的整数之间的区别;64位如下:32位范围−2147483648到214748364764位范围:−9223372036854775808至+922337203685477580 7

我使用的是64位jdk,我通过打印以下内容来验证它:System.out.println("JVM位大小:"+System.getProperty("sun.arch.data.model"));

JVM位大小:64

当我尝试初始化一个数字大于10个字母的新Integer变量时,我会遇到编译错误。为什么?看起来64位的更大

示例(在netbeans上运行):int x=12345678910;=>错误:整数太大

Java中int的大小完全独立于JDK的32位或64位。它总是4字节=32位=−2147483648到2147483647。

如果您想要一个64位整数,请使用long,它始终是64位=8字节。

与其他语言不同,Java的数字基元类型总是相同的大小,无论平台是什么(32位还是64位,LE或BE);它们都是big-endian,并且对于byte是1字节长,对于shortchar是2字节长,int是4字节长,并且long是8字节长。

如果不是这样的话,罐子就不能跨平台移植。。。

您最好的资源是JLS:

整数类型为byte、short、int和long,其值分别为8位、16位、32位和64位有符号二补整数,以及char,其值为表示UTF-16代码单元的16位无符号整数

4.2.1积分类型和值

积分类型的值是以下范围内的整数:

  1. 对于字节,从-128到127,包括

  2. 简而言之,从-32768到32767,包括

  3. 对于int,从-2147483648到2147483647,包括在内

  4. 长期,从9223372036854775808到9223372036864775807,包括在内

  5. 对于char,从"\u0000"到"\ufff"(包括在内),即从0到65535

相关内容

  • 没有找到相关文章

最新更新