JDK里 int型为4个字节长度,到64bit jdk 时还是4字节32bit吗?另外为什么32bit机器的最大寻址空间为4G,能给个具体的详细的计算公式吗?

解决方案 »

  1.   

    java里面的int都是32个bit位
    64位说的是操作系统的字长
    32位的寻址空间就是2的32次方,就是4G
      

  2.   

    java中基本类型的长度都是固定的,不随平台改变而改变,不然还要虚拟机干嘛!
      

  3.   

    2的32次方
    bit 4294967296.00 
    byte 536870912.00 
    kb 524288.00 
    mb 512.00 不好意思 我算出来怎么才 512 mb呢
      

  4.   

    byte 4294967296.00 
    kb 4194304.00 
    mb 4096.00 
    gb 4.00 果然是这样
      

  5.   

    数值类型的范围是永远不会变更的。不过是 32 位,64 位抑或是 128 位,Java 中的 int 表示的值必须是 32 位。但是 JVM 的为了能更高效的实现,在系统中占有的位数就是不一定的,一般来说 int 在 32 位系统中占用 32 位,而在 64 位系统中,占用 64 位,但是只用了 32 位。这就好比 boolean 类型与 int 类型占用的空间是一样的,虽然只有 true 和 false 两个值,但是也占用了 int 的位宽。
      

  6.   

    2^10 = 1024 = 1k
    2^20 = 1024 * 1024 = 1M
    2^30 = 1024 * 1024 * 1024 = 1G
    2^40 = 1024 * 1024 * 1024 * 1024 = 1T
    2^50 = 1024 * 1024 * 1024 * 1024 * 1024 = 1P
    2^60 = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 = 1Ek, M, G, T, P, E 是国际单位词头,每一级相差 1000 倍,但是在计算机系统中改为每一级相差 1024 倍。2^32 = 2^30 * 2^2 = 1G * 4 = 4G
    2^64 = 2^60 * 2^4 = 1E * 16 = 16E我们现在能接触到最大的单位也就是 T 了,但是对于 google 来说每天处理的数据量就是以 P 为单位的。