跨越jvms的对象的对象ID?

时间:2010-02-26 11:38:07

标签: java

我对JVM上的对象的对象ID有疑问。即假设我已经持久化了在JVM1上创建的对象,现在我想在JVM2上使用相同的对象。

  1. 那怎么做。
  2. JVM上对象的对象ID是否相同?
  3. 如果上述问题为是,那么如果JVM2已经有一个objectID与持久化对象相同的对象,那将是什么情况。
  4. 感谢。

3 个答案:

答案 0 :(得分:3)

在反序列化之前,JVM2上不存在该对象。 Java中没有“通用对象ID”的概念 - 如果您需要对象的ID,则必须自己添加它。您可以向对象添加UUID字段;然后你想要保留某种缓存,以便你发现重复。

你真的确定你需要这一切吗?可能值得再看一下大局并重新设计。

答案 1 :(得分:2)

查看序列化here,或者您也可以使用RMI - check out this link

我不太确定Object Id是什么意思,如果你指的是打印出没有toString方法的对象时打印出的引用,那么这不是对象ID,这是内存地址引用和将在每个JVM上有所不同,并且在同一程序的不同调用中会有所不同。

答案 2 :(得分:2)

您可以向对象添加UUID以创建唯一ID。