T
tuxedo
Gast
Hallo zusammen,
ich grüble gerade über der Frage: "Was passiert in der JVM wenn ich ein Objekt 2x deserialisiere? Hab ich's dann 2x im Heap liegen?"
Hintergrund der Frage: Wenn man als Client mit RPC Techniken vom Server ein Object a der Klasse A und Object b der Klasse B anfordert, beide Objekte aber eine gemeinsame Referenz auf Object c der Klasse C haben: Hat man dann "c" doppelt im Heap liegen?
Soweit bin ich schon:
Ich deserialisiere ein und dasselbe Objekt mit zwei verschiedenen ObjectInputStreams. Ergebnis: hashCode und equals sagen: Die zwei Instanzen sind verschieden.
Wenn ich jetzt in der Klasse C sowohl hashCode() als auch equals() überschreibe, dann sind die zwei Instanzen auf einmal gleich (ist ja auch klar, da hashCode und equals an den Eigenschaften des Objekts hängen, und die sind nunmal gleich). Aber hab ich dann das Objekt auch tatsächlich nur 1x im Speicher? Ich nehme an dass "ja", oder ???:L
- Alex
ich grüble gerade über der Frage: "Was passiert in der JVM wenn ich ein Objekt 2x deserialisiere? Hab ich's dann 2x im Heap liegen?"
Hintergrund der Frage: Wenn man als Client mit RPC Techniken vom Server ein Object a der Klasse A und Object b der Klasse B anfordert, beide Objekte aber eine gemeinsame Referenz auf Object c der Klasse C haben: Hat man dann "c" doppelt im Heap liegen?
Soweit bin ich schon:
Ich deserialisiere ein und dasselbe Objekt mit zwei verschiedenen ObjectInputStreams. Ergebnis: hashCode und equals sagen: Die zwei Instanzen sind verschieden.
Wenn ich jetzt in der Klasse C sowohl hashCode() als auch equals() überschreibe, dann sind die zwei Instanzen auf einmal gleich (ist ja auch klar, da hashCode und equals an den Eigenschaften des Objekts hängen, und die sind nunmal gleich). Aber hab ich dann das Objekt auch tatsächlich nur 1x im Speicher? Ich nehme an dass "ja", oder ???:L
- Alex