正如我所理解的,两个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字节长,对于short
和char
是2字节长,int
是4字节长,并且long
是8字节长。
如果不是这样的话,罐子就不能跨平台移植。。。
您最好的资源是JLS:
整数类型为byte、short、int和long,其值分别为8位、16位、32位和64位有符号二补整数,以及char,其值为表示UTF-16代码单元的16位无符号整数
4.2.1积分类型和值
积分类型的值是以下范围内的整数:
对于字节,从-128到127,包括
简而言之,从-32768到32767,包括
对于int,从-2147483648到2147483647,包括在内
长期,从9223372036854775808到9223372036864775807,包括在内
对于char,从"\u0000"到"\ufff"(包括在内),即从0到65535