Вы можете сделать это в Java, используя Unsafe. Однако это очень плохая идея. Это связано с тем, что адрес объекта может измениться в любое время (с помощью GC). Если вы сохраните адрес, как этот, используйте его позже, он может больше не быть действительным и даже привести к сбою приложения. Если GC считает, что объект не имеет строгой ссылки, он может очистить объект. Когда вы попытаетесь снова сослаться на объект, он может больше не находиться в JVM.
Размер адреса может меняться в зависимости от того, как вы запускаете JVM. 64-битная JVM обычно использует 32-битные ссылки (что может удивить C ++). Вы можете получить это с помощью Unsafe.ADDRESS_SIZE
Я бы использовал Unsafe только для того, чтобы увидеть, что это за адреса, чтобы увидеть, как объекты располагаются в вашем кеше. (Что не очень полезно, так как мало что можно об этом :()
Вполне вероятно, что все, что вы пытаетесь сделать, может быть сделано лучше. Можете ли вы дать нам более подробную информацию?