Senario aplikasi dan perbezaan antara lulus nilai dan hantaran rujukan dalam Java
Dalam pengaturcaraan Java, dua kaedah digunakan semasa menghantar parameter: lulus nilai dan lulus rujukan. Memahami senario aplikasi dan perbezaan antara kedua-dua kaedah pemindahan ini adalah sangat penting untuk memahami peruntukan memori dan kaedah pemindahan parameter semasa menjalankan program Java. Artikel ini akan memperkenalkan konsep hantaran nilai dan hantaran rujukan secara terperinci dan memberikan contoh kod khusus.
Melalui nilai bermaksud menyalin nilai parameter sebenar dan menghantarnya kepada parameter formal di dalam kaedah semasa memanggil kaedah, bukannya menghantar alamat rujukan parameter sebenar. Ini bermakna mengubah suai nilai parameter formal di dalam kaedah tidak menjejaskan nilai parameter sebenar.
Berikut ialah contoh kod untuk pemindahan nilai:
public class ValuePassingExample { public static void main(String[] args) { int num = 10; System.out.println("Before method call, num = " + num); modifyValue(num); System.out.println("After method call, num = " + num); } public static void modifyValue(int num) { num = num + 5; System.out.println("Inside method, num = " + num); } }
Hasil output:
Before method call, num = 10 Inside method, num = 15 After method call, num = 10
Seperti yang dapat dilihat daripada hasil output, mengubah suai nilai nombor parameter formal dalam kaedah tidak akan menjejaskan nilai parameter sebenar bilangan Ini kerana dalam pas nilai, salinan parameter sebenar dihantar ke dalam kaedah, jadi pengubahsuaian kepada parameter formal dalam kaedah tidak akan menjejaskan parameter asal.
Melewati rujukan bermaksud menyalin alamat rujukan parameter sebenar dan menyerahkannya kepada parameter rasmi di dalam kaedah apabila kaedah dipanggil. Ini bermakna mengubah suai nilai parameter formal di dalam kaedah akan secara langsung mempengaruhi nilai parameter sebenar.
Berikut ialah kod sampel untuk lulus melalui rujukan:
public class ReferencePassingExample { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5}; System.out.println("Before method call, array[0] = " + array[0]); modifyArray(array); System.out.println("After method call, array[0] = " + array[0]); } public static void modifyArray(int[] array) { array[0] = 10; System.out.println("Inside method, array[0] = " + array[0]); } }
Hasil output:
Before method call, array[0] = 1 Inside method, array[0] = 10 After method call, array[0] = 10
Seperti yang dapat dilihat daripada hasil output, mengubah suai nilai tatasusunan parameter formal[0] di dalam kaedah akan memberi kesan secara langsung kepada yang sebenar nilai tatasusunan parameter[0]. Ini kerana dalam lulus rujukan, apa yang dihantar ke dalam kaedah adalah alamat rujukan parameter sebenar, jadi pengubahsuaian kepada parameter formal dalam kaedah akan secara langsung mempengaruhi parameter asal.
Senario aplikasi dan perbezaan antara lulus nilai dan lulus rujukan adalah seperti berikut:
Ringkasnya, senario aplikasi dan perbezaan antara lulus nilai dan hantaran rujukan dalam Java bergantung terutamanya pada kesederhanaan atau kerumitan jenis data dan sama ada data asal perlu diubah suai. Dengan memahami ciri dan senario penggunaan kedua-dua kaedah penghantaran ini, anda boleh mereka bentuk dan menulis program Java dengan lebih baik.
Atas ialah kandungan terperinci Perbincangan tentang aplikasi dan perbezaan hantaran nilai dan hantaran rujukan dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!