美文网首页
java 一个空对象占多少字节

java 一个空对象占多少字节

作者: 一方乌鸦 | 来源:发表于2020-06-17 17:01 被阅读0次

    Object o = new Object():
    在32位系统下:
    java空对象占8个字节,对象的引用占4个字节。
    所以上面那条语句所占的空间是4byte+8byte=12byte.
    java中的内存是以8字节的倍数来分配的,所以分配的内存是16byte.
    举个例子:

    Class O {
      int i;
      byte j;
      String s;
    }
    

    其所占内存的大小是空对象(8)+int(4)+byte(1)+String引用(4)=17byte,因要是8的整数倍,所以其占大小为24byte.

    为什么 java 对象按照8字节的倍数分配?

    其目的是 数据对齐(alignment),它允许以一些空间为代价加快内存访问。如果数据未对齐,则处理器需要在加载内存后进行一些转换才能访问它。

    此外,垃圾回收简化(并加快)最小分配单元的大小。

    Java不需要8字节(64位系统除外),但由于32位体系结构是创建Java时的常态,因此Java标准中可能需要4字节对齐。

    相关文章

      网友评论

          本文标题:java 一个空对象占多少字节

          本文链接:https://www.haomeiwen.com/subject/ebbsxktx.html