Итак, я понимаю, что сжатые oops включены по умолчанию в HotSpot VM. Он поддерживает это с Java SE 6u23 и затем через опцию VM -XX:+UseCompressedOops
. Я понимаю, что он позволяет эффективно использовать кэш ЦП, поскольку кэширование ЦП может содержать больше ссылок, чем если бы им приходилось иметь дело с 64-разрядными ссылками. Но то, что я не понимаю, заключается в том, что использование только 32-разрядных JVM может адресовать до 2 адресов 64.
Чтобы упростить задачу, как мы можем адресовать адрес памяти до 2 4 используя только 2 бита? Каким может быть возможное кодирование/декодирование такой адресной схемы?