Rumah  >  Artikel  >  Java  >  Salinan Dalam lwn. Salinan Cetek lwn. Klon: Mekanisme Salinan Java Mana Yang Perlu Anda Gunakan?

Salinan Dalam lwn. Salinan Cetek lwn. Klon: Mekanisme Salinan Java Mana Yang Perlu Anda Gunakan?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 06:44:28234semak imbas

 Deep Copy vs. Shallow Copy vs. Clone: Which Java Copy Mechanism Should You Use?

Deep Copy, Shallow Copy dan Clone in Java

Apabila memanipulasi objek dalam Java, memahami nuansa semantik salinan adalah penting. Salinan dalam, salinan cetek dan klon biasanya digunakan istilah untuk menerangkan pendekatan yang berbeza untuk penduaan objek.

Salinan Cetek

Salinan cetek menduplikasi tahap paling luar objek . Objek baharu mempunyai medan berasingan, tetapi sebarang rujukan yang disimpan dalam medan tersebut dikongsi dengan objek asal.

Contoh:

<code class="java">Example eg1 = new Example(1, new int[]{1, 2});
Example eg2 = new Example(eg1.foo, eg1.bar);</code>

Dalam salinan cetek ini, cth2 mempunyai foo baharu dan merujuk kepada tatasusunan bar yang sama seperti eg1.

Salinan Dalam

Salinan dalam merentasi berbilang peringkat objek, mencipta salinan baharu semua bersarang objek. Objek baharu adalah bebas sepenuhnya daripada objek asal.

Contoh:

<code class="java">Example eg1 = new Example(1, new int[]{1, 2});
Example eg2 = new Example(eg1.foo, Arrays.copy(eg1.bar));</code>

Dalam salinan dalam ini, eg2 mempunyai foo baharu dan bar tatasusunan baharu, yang ialah salinan yang ada dalam eg1.

Klon

Kaedah klon, yang wujud untuk semua objek dan tatasusunan, bertujuan untuk menghasilkan salinan. Walau bagaimanapun, tingkah lakunya tidak diseragamkan:

  • Ia mungkin mengembalikan salinan cetek atau dalam.
  • Ia mungkin tidak selalu mencipta objek baharu.
  • Ia mungkin tidak menjamin kesamaan objek.

Kesimpulan

Penyalinan mendalam disyorkan apabila kebebasan sepenuhnya antara objek diperlukan. Penyalinan cetek sesuai apabila rujukan objek mencukupi. Tingkah laku kaedah klon adalah tidak konsisten dan harus digunakan dengan berhati-hati.

Atas ialah kandungan terperinci Salinan Dalam lwn. Salinan Cetek lwn. Klon: Mekanisme Salinan Java Mana Yang Perlu Anda Gunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn