Learn about object overhead in JVM

后端 未结 3 1466
离开以前
离开以前 2021-01-12 04:52

I am studying java, and I remember reading somewhere that java objects, had some overhead inside the JVM, which was used for administration reasons by the virtual machine. S

3条回答
  •  無奈伤痛
    2021-01-12 05:03

    You can't get the overhead directly. The amount of overhead is implementation dependent, and can vary based on a number of factors (e.g. the precise JVM version, and whether you are on a 32 or 64bit JVM).

    However it is reasonably safe to assume that in typical modern JVM implementations like HotSpot, the overhead per object is between 8 and 16 bytes. Arrays typically have an overhead that is 4 bytes larger than other objects (to contain the integer array length).

    See also:

    • In Java, what is the best way to determine the size of an object?
    • Memory usage of Java objects: general guide

提交回复
热议问题