Rumah > Java > javaTutorial > Tatasusunan Java: Lulus dengan Nilai atau Lulus Rujukan?

Tatasusunan Java: Lulus dengan Nilai atau Lulus Rujukan?

Susan Sarandon
Lepaskan: 2024-12-29 08:03:14
asal
548 orang telah melayarinya

Java Arrays: Pass by Value or Pass by Reference?

Java Array: Value or Reference Passing?

Array dalam Java memegang status istimewa, bukan jenis primitif mahupun objek lengkap. Sifat unik ini menimbulkan persoalan: adakah tatasusunan Java diluluskan mengikut nilai atau rujukan?

Semua dalam Java diluluskan mengikut nilai. Ini termasuk tatasusunan. Apabila anda menghantar tatasusunan kepada kaedah, apa yang sebenarnya diluluskan ialah rujukan kepada tatasusunan itu, bukan tatasusunan itu sendiri.

Oleh itu, sebarang pengubahsuaian yang dibuat pada kandungan tatasusunan melalui rujukan itu akan memberi kesan kepada tatasusunan asal . Walau bagaimanapun, mengubah rujukan untuk menunjuk kepada tatasusunan baharu tidak akan menjejaskan rujukan yang dipegang dalam kaedah asal.

Pertimbangkan coretan Java berikut:

public class ArrayPassingDemo {

    public static void changeContent(int[] arr) {
        arr[0] = 10; // Changes the content of the array in main()
    }

    public static void changeRef(int[] arr) {
        arr = new int[2]; // Does 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 (since the reference change isn't reflected)
    }
}
Salin selepas log masuk

Dalam contoh ini:

  • changeContent mengubah suai kandungan tatasusunan, yang ditunjukkan dalam main().
  • changeRef cuba menukar rujukan tatasusunan tetapi gagal, kerana rujukan asal kekal tidak terjejas dalam main().

Tingkah laku ini menyerlahkan bahawa tatasusunan dalam Java diluluskan oleh nilai, walaupun operasi hantaran melibatkan rujukannya.

Atas ialah kandungan terperinci Tatasusunan Java: Lulus dengan Nilai atau Lulus 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