Deep Copy vs. Shale Copy vs. Clone in Java
in Java, "Deep Copy", "Shallow Copy" und " Klon "werden häufig verwendet, aber schlecht definierte Begriffe. Jedes Konzept erfordert die Klarstellung, um ein ordnungsgemäßes Verständnis zu gewährleisten.
Kopieren von Werten vs. Kopieren von Objekten
Bevor Sie mit Kopiertypen diskutieren ] und kopieren Objekte :
Ein neues Objekt wird mit denselben Werten wie das Original erstellt, aber Verweise auf eingebettete Objekte werden geteilt.
Deep Copy:Beispiel eg2 = neu Beispiel (EG1.foo, EG1.bar);
class Example {
int foo;
int[] bar;
...
}
Example eg1 = new Example(1, new int[]{1, 2});
Example eg2 = ...
Beispiel EG2 = Neue Beispiel (EG1.foo, Arrays.copy (EG1.bar));
Example eg2 = new Example(eg1.foo, eg1.bar);
klone
Example eg2 = new Example(eg1.foo, Arrays.copy(eg1.bar));
Die Spezifikation des Klons definiert nicht, ob sie eine flache oder tiefe Kopie erzeugt. Die Semantik des Klons kann in verschiedenen Klassen erheblich variieren.
Daher kann die Verwendung von Klon unvorhersehbar und herausfordernd sein zu verwalten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3