Java VM 是否移动内存中的对象,如果是,如何移动?
Java 虚拟机是否曾经移动过内存中的对象,如果是,它如何处理更新对移动对象的引用?
我问是因为我正在探索以分布式方式(即跨多个服务器)存储对象的想法,但是出于效率原因,我需要能够在服务器之间移动对象。对象需要能够包含指向彼此的指针,甚至指向远程服务器上的对象。我正在尝试思考更新对移动对象的引用的最佳方法。
到目前为止,我的两个想法是:
- 在对象的生存期内不移动的某个位置维护一个引用间接寻址,如果对象移动,我们会更新该间接寻址。但是 - 如何管理这些间接层?
- 为每个对象保留一个反向引用的列表,以便我们知道在移动对象时必须更新的内容。当然,这会产生性能开销。
我对这些方法的反馈以及任何替代方法的建议很感兴趣。