1
127000 2020-03-30 21:30:12 +08:00 via Android
一个 Java 对象到底占用多大内存?
cnblogs.com/zhanjindong/p/3757767.html |
2
lcj2class 2020-03-30 22:02:27 +08:00
object 在 hotspot jvm 中是 8 字节对齐,也就是说对象地址用二进制表示,最后三位都是 0,很明显这是没必要存储的,压缩指针干的就是这件事。32 位地址最多可以表示 4G 的内存空间,用到压缩指针上,就能表示 4G * 8 = 32G 内存
|
3
Newyorkcity OP @lcj2class 谢谢解答,后三个 bits 都是 0 可以扔掉不要我是能理解的... 后面我没太看懂,勉强理解的话意思是
因为 jvm 的堆大小有限,用 32bits 就足够标识了甚至还多了 -> 32bits 有 2^32-1 * 8bytes 的空间,已经远远大于常见 JVM 堆内存了 是这样么? |
4
lcj2class 2020-03-31 12:47:39 +08:00 via iPhone 1
@Newyorkcity 可以这么理解
|