Objektzuordnung

Ich habe ein Szenario wie:

MyClass obj1 = new MyClass();
............//some operations on obj1;
MyClass obj2 = new MyClass();
obj2 = obj1;

Ich habe das folgende Problem: Wenn ich einen Parameter ändere, ist er in beiden Objekten betroffen (da sich beide auf denselben Speicherort beziehen). Wenn ich jedoch den Parameter obj2 ändere, sollte er diesen Parameterwert in obj1 nicht ändern (dh beide sollten es nicht tun) auf den gleichen Ort zeigen). Wie kann ich das machen? Bitte hilf mir. Ich kann hier nicht klonen, da myclass ICloneable nicht implementiert und myclass nicht geändert werden kann. Wenn ich durch Serialisieren und Deserialisieren klone, handelt es sich dann um einen Deep-Klon?