. Walaupun mereka kelihatan serupa, mereka sebenarnya berfungsi secara berbeza. Artikel ini akan menerangkan secara terperinci perbezaan antara hantaran nilai dan hantaran rujukan dalam Java, dan memberikan contoh kod khusus untuk membantu anda memahami dan menerapkannya dengan lebih baik.
Pass by Value: Lulus salinan pembolehubah asal kepada kaedah.Apabila kita menghantar pembolehubah jenis primitif sebagai parameter kepada kaedah, kita sebenarnya hanya menyalin nilai pembolehubah asal, dan kemudian menghantar nilai yang disalin kepada kaedah. Sebarang pengubahsuaian yang dibuat pada parameter di dalam kaedah tidak akan menjejaskan nilai pembolehubah asal.
Berikut ialah contoh kod untuk pemindahan nilai:
public class ValuePassingExample { public static void main(String[] args) { int num = 10; System.out.println("Before calling method, num = " + num); changeValue(num); System.out.println("After calling method, num = " + num); } public static void changeValue(int num) { num = 20; System.out.println("Inside method, num = " + num); } }
Before calling method, num = 10 Inside method, num = 20 After calling method, num = 10
Lulus Rujukan: Hantar alamat rujukan objek kepada kaedah.
Apabila kita menghantar objek sebagai parameter kepada kaedah, apa yang sebenarnya diluluskan ialah alamat rujukan objek. Sebarang operasi pada rujukan di dalam kaedah akan menjejaskan objek asal.Berikut ialah kod sampel untuk penghantaran rujukan:
public class ReferencePassingExample { public static void main(String[] args) { StringBuilder sb = new StringBuilder("Hello"); System.out.println("Before calling method, sb = " + sb); changeValue(sb); System.out.println("After calling method, sb = " + sb); } public static void changeValue(StringBuilder sb) { sb.append(" World"); System.out.println("Inside method, sb = " + sb); } }
Before calling method, sb = Hello Inside method, sb = Hello World After calling method, sb = Hello World
Analisis senario aplikasi
Jika anda perlu mengubah suai nilai pembolehubah asal di dalam kaedah, anda boleh menggunakan hantaran nilai.
Jika anda perlu mengubah suai nilai objek di dalam kaedah, atau perlu mengembalikan berbilang nilai, anda boleh menggunakan hantaran rujukan.
Atas ialah kandungan terperinci Analisis perbezaan dan senario yang boleh digunakan antara hantaran nilai dan hantaran rujukan dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!