Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 跨JVM的对象的对象Id?_Java - Fatal编程技术网

Java 跨JVM的对象的对象Id?

Java 跨JVM的对象的对象Id?,java,Java,我对跨JVM的对象的对象ID有一个问题。假设我已经持久化了一个在JVM1上创建的对象,现在我想在JVM2上使用相同的对象 那么如何做到这一点。 两个JVM上对象的对象Id是否相同? 如果上面的问题是肯定的,那么如果JVM2已经有了一个objectID与持久化对象相同的对象,情况会怎样呢。 谢谢。在您反序列化该对象之前,该对象不会存在于JVM2上。Java中没有通用对象ID的概念——如果您需要对象的ID,您必须自己添加它。您可以向对象添加UUID字段;然后,您需要维护某种缓存,以允许您发现重复项

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

那么如何做到这一点。 两个JVM上对象的对象Id是否相同? 如果上面的问题是肯定的,那么如果JVM2已经有了一个objectID与持久化对象相同的对象,情况会怎样呢。
谢谢。

在您反序列化该对象之前,该对象不会存在于JVM2上。Java中没有通用对象ID的概念——如果您需要对象的ID,您必须自己添加它。您可以向对象添加UUID字段;然后,您需要维护某种缓存,以允许您发现重复项


你真的确定你需要这些吗?也许值得再看一眼全局并重新设计。

在反序列化之前,JVM2上不存在该对象。Java中没有通用对象ID的概念——如果您需要对象的ID,您必须自己添加它。您可以向对象添加UUID字段;然后,您需要维护某种缓存,以允许您发现重复项

你真的确定你需要这些吗?也许值得再看一眼全局并重新设计。

查看序列化,或者您可以使用RMI

我不太清楚你说的对象Id是什么意思,如果你指的是当你打印出一个没有toString方法的对象时打印出来的引用,这不是对象ID这是内存地址引用,在每个JVM上都不同,在同一程序的不同调用上也不同。

检查序列化,或者您可以使用RMI


我不太清楚你说的对象Id是什么意思,如果你指的是当你打印出一个没有toString方法的对象时打印出来的引用,这不是对象ID这是内存地址引用,在每个JVM上会有所不同,在同一程序的不同调用上也会有所不同。

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

UUID UUID=UUID.randomUUID


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

UUID UUID=UUID.randomUUID


实际上,我们有一个多节点实现。在所有节点中,一个对象都应该具有相同的对象ID。这就是要求。对象ID听起来像是特定于您的应用程序的,对吗?@gurukulki:不过,您的对象还没有自己的标识形式吗?如果你有一些自然键,那很可能是你在其他地方使用的…实际上我们有一个多节点实现。在所有节点中,一个对象都应该具有相同的对象ID。这就是要求。对象ID听起来像是特定于您的应用程序的,对吗?@gurukulki:不过,您的对象还没有自己的标识形式吗?如果你有一些自然的钥匙,那很可能是你在其他地方使用的…+1表示新的东西!我以前没见过,你用过吗,如果用过,在哪里?@James B直到现在我都不需要这个,我通常使用节点的应用程序配置中的唯一Id或它的IP地址。我认为它很方便,我总是使用一些当前时间(毫秒)和对象中的半唯一字符串哈希的组合,但这可以让我省去做一些总是觉得有点笨拙的事情——谢谢+1新东西!我以前没见过,你用过吗,如果用过,在哪里?@James B直到现在我都不需要这个,我通常使用节点的应用程序配置中的唯一Id或它的IP地址。我认为它很方便,我总是使用一些当前时间(毫秒)和对象中的半唯一字符串哈希的组合,但这可以让我省去做一些总是觉得有点笨拙的事情——谢谢!