前言
最近,复习中,突然发现有一个知识点之前遗漏了。主要让我产生疑问的是如下问题:
- 2^32 = 4G。
- 建议JVM内存不要超过32G。
- JVM内存超过32G,压缩指针失效。
- 前置知识:Java对象布局(内存模型/结构)
- 解惑学习的两篇博客:聊一聊JAVA指针压缩的实现原理(图文并茂,让你秒懂)、32位CPU最多支持4G内存是怎么算出来的?
一、压缩指针是什么?
压缩指针,其实可以分为压缩和指针两个概念。
- 压缩:就是将一个体量比较大的东西,变为体量较少的一种操作,所以也可以理解为使用一个体量较小的东西,来表示一个体量大的东西,当然两者表达的含义不能被修改或者丢失。
- 指针:指针也就是内存地址,指针变量是用来存放内存地址的变量。也可以这样理解ÿ