Rumah > Java > javaTutorial > Adakah Array Java Melepasi Nilai atau Rujukan?

Adakah Array Java Melepasi Nilai atau Rujukan?

Patricia Arquette
Lepaskan: 2024-12-17 05:44:25
asal
956 orang telah melayarinya

Is Java's Array Passing by Value or by Reference?

Memahami Nilai dan Lulus Rujukan di Jawa: Kajian Kes Tatasusunan

Di Jawa, konsep lulus mengikut nilai atau rujukan ialah topik yang penting. Jenis data yang berbeza berkelakuan berbeza semasa proses ini. Walaupun primitif diluluskan dengan nilai, tatasusunan, yang bukan primitif tetapi bukan objek, membentangkan situasi yang unik.

Adakah Tatasusunan Lulus dengan Nilai atau Rujukan?

Pada dasarnya, segala-galanya di Jawa diluluskan oleh nilai. Tatasusunan, sebagai objek, ikut konsep ini, dan rujukan kepada tatasusunan diluluskan oleh nilai. Sama seperti menghantar rujukan objek, rujukan tatasusunan ialah salinan.

Implikasi Lulus Nilai untuk Tatasusunan

Pelulusan nilai ini mempunyai implikasi khusus:

  • Perubahan yang dibuat pada kandungan tatasusunan melalui rujukan yang diluluskan akan mengubah suai yang asal tatasusunan.
  • Mengubah suai rujukan itu sendiri (menetapkannya kepada tatasusunan baharu) tidak menjejaskan rujukan asal dalam kaedah asal.

Demonstrasi Contoh

Pertimbangkan kod Java berikut:

public static void changeContent(int[] arr) {

    // If we change the contnet of arr.
    arr[0] = 10;  // Will change the content of array in main()
}

public static void changeRef(int[] arr) {
    // If we change the reference
    arr = new int[2];  // Will not change the array in main()
    arr[0] = 15;
}

public static void main(String[] args) {
    int[] arr = new int[2];
    arr[0] = 4;
    arr[1] = 5;

    changeContent(arr);

    System.out.println(arr[0]);  // Will print 10..
    
    changeRef(arr);

    System.out.println(arr[0]);  // Will still print 10..
                                  // Change the reference doesn't reflect change here..
}
Salin selepas log masuk

Kod ini menunjukkan penghantaran nilai tingkah laku tatasusunan. Menukar kandungan tatasusunan menggunakan changeContent mengubah suai tatasusunan asal. Walau bagaimanapun, memberikan tatasusunan baharu dalam changeRef tidak mengemas kini rujukan asal. Akibatnya, nilai arr[0] kekal 10 walaupun selepas rujukan berubah.

Atas ialah kandungan terperinci Adakah Array Java Melepasi Nilai atau Rujukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan