Rumah Java javaTutorial Perbincangan mendalam tentang perbezaan antara lulus nilai dan hantaran rujukan dalam pengaturcaraan Java untuk membantu anda memahami dengan lebih baik

Perbincangan mendalam tentang perbezaan antara lulus nilai dan hantaran rujukan dalam pengaturcaraan Java untuk membantu anda memahami dengan lebih baik

Jan 30, 2024 am 10:28 AM
lulus dengan rujukan pengaturcaraan java Lulus nilai

Perbincangan mendalam tentang perbezaan antara lulus nilai dan hantaran rujukan dalam pengaturcaraan Java untuk membantu anda memahami dengan lebih baik

Analisa perbezaan antara hantaran nilai dan hantaran rujukan dalam Java untuk membantu anda lebih memahami pengaturcaraan Java Contoh kod khusus diperlukan

Dalam pengaturcaraan Java, hantaran parameter dibahagikan kepada dua kaedah: hantaran nilai dan hantaran rujukan. Memahami perbezaan antara kedua-dua kaedah penghantaran ini adalah sangat penting untuk pemahaman yang mendalam tentang pengurusan memori Java dan mekanisme panggilan kaedah.

Pass by Value bermakna salinan parameter sebenar diluluskan, bukan parameter sebenar itu sendiri. Apabila kaedah dipanggil, nilai parameter sebenar disalin ke dalam pembolehubah baharu dan kemudian dihantar ke kaedah.

Pass by Rujukan bermaksud rujukan (alamat) parameter sebenar diluluskan dan bukannya nilai parameter sebenar. Apabila kaedah dipanggil, rujukan kepada parameter sebenar dihantar kepada kaedah. Oleh itu, kaedah boleh mengubah nilai parameter sebenar dengan rujukan.

Yang berikut menggunakan contoh kod khusus untuk menunjukkan perbezaan antara pemindahan nilai dan pemindahan rujukan.

public class PassByValueExample {

    public static void main(String[] args) {
        int number = 5;
        System.out.println("Before changeValue method, number = " + number);

        changeValue(number);

        System.out.println("After changeValue method, number = " + number);
    }

    public static void changeValue(int num) {
        num = 10;
        System.out.println("Inside changeValue method, num = " + num);
    }
}
Salin selepas log masuk

Dalam contoh kod di atas, kami menentukan pembolehubah integer nombor dalam kaedah utama dan menetapkan nilai awalnya kepada 5. Kemudian, kami memanggil kaedah changeValue dan menyerahkan nombor sebagai parameter sebenar kepada kaedah tersebut. main方法中定义了一个整型变量number,并将其初始值设为5。然后,我们调用了changeValue方法,并将number作为实际参数传递给该方法。

changeValue方法内部,我们将形参num的值设置为10。然后,我们打印出num的值。

运行代码,我们会发现输出结果为:

Before changeValue method, number = 5
Inside changeValue method, num = 10
After changeValue method, number = 5
Salin selepas log masuk

可以看到,在changeValue方法内部修改了形参num的值,但是对实际参数number并没有任何影响。这是因为值传递方式传递的是实际参数的副本,对副本的修改不会影响到实际参数本身。

接下来,我们再来看一个引用传递的示例代码。

public class PassByReferenceExample {

    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("Hello");
        System.out.println("Before changeValue method, sb = " + sb);

        changeValue(sb);

        System.out.println("After changeValue method, sb = " + sb);
    }

    public static void changeValue(StringBuilder builder) {
        builder.append(" World");
        System.out.println("Inside changeValue method, builder = " + builder);
    }
}
Salin selepas log masuk

以上代码示例中,我们在main方法中定义了一个StringBuilder对象sb,并将其初始值设为"Hello"。然后,我们调用了changeValue方法,并将sb作为实际参数传递给该方法。

changeValue方法内部,我们通过builder.append方法追加了字符串" World"。然后,我们打印出builder的值。

运行代码,我们会发现输出结果为:

Before changeValue method, sb = Hello
Inside changeValue method, builder = Hello World
After changeValue method, sb = Hello World
Salin selepas log masuk

可以看到,通过引用传递方式传递的是对象的引用(地址),对引用的操作会直接影响到对象本身。因此,在changeValue方法内部对builder对象进行追加字符串操作后,实际参数sb

Di dalam kaedah changeValue, kami menetapkan nilai parameter formal num kepada 10. Kemudian, kami mencetak nilai num.

Jalankan kod, kita akan dapati bahawa hasil output ialah: 🎜rrreee🎜Anda boleh melihat bahawa nilai parameter formal num diubah suai dalam kaedah changeValue, tetapi parameter sebenar number tidak mempunyai kesan. Ini kerana kaedah lulus nilai memindahkan salinan parameter sebenar, dan pengubahsuaian kepada salinan tidak akan menjejaskan parameter sebenar itu sendiri. 🎜🎜Seterusnya, mari lihat contoh kod untuk rujukan lulus. 🎜rrreee🎜Dalam contoh kod di atas, kami menentukan objek StringBuilder sb dalam kaedah main dan menetapkan nilai awalnya kepada "Hello ". Kemudian, kami memanggil kaedah changeValue dan menyerahkan sb sebagai parameter sebenar kepada kaedah tersebut. 🎜🎜Di dalam kaedah changeValue, kami menambahkan rentetan "World" melalui kaedah builder.append. Kemudian, kami mencetak nilai builder. 🎜🎜Jalankan kod, dan kita akan dapati bahawa outputnya ialah: 🎜rrreee🎜Anda boleh melihat bahawa apa yang dilalui melalui rujukan lulus ialah rujukan (alamat) objek, dan operasi pada rujukan akan mempengaruhi objek itu sendiri. Oleh itu, selepas menambahkan rentetan pada objek builder dalam kaedah changeValue, kandungan parameter sebenar sb juga telah berubah. 🎜🎜Melalui kod contoh di atas, kita dapat memahami dengan jelas perbezaan antara hantaran nilai dan hantaran rujukan dalam Java. Sangat penting untuk memahami panggilan kaedah dan pengurusan memori. Dalam proses pengaturcaraan sebenar, kita perlu memilih kaedah pemindahan yang sesuai untuk memproses parameter mengikut keperluan dan situasi tertentu. 🎜

Atas ialah kandungan terperinci Perbincangan mendalam tentang perbezaan antara lulus nilai dan hantaran rujukan dalam pengaturcaraan Java untuk membantu anda memahami dengan lebih baik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menulis penjana laporan prestasi pelajar yang mudah menggunakan Java? Bagaimana untuk menulis penjana laporan prestasi pelajar yang mudah menggunakan Java? Nov 03, 2023 pm 02:57 PM

Bagaimana untuk menulis penjana laporan prestasi pelajar yang mudah menggunakan Java? Penjana Laporan Prestasi Pelajar ialah alat yang membantu guru atau pendidik menjana laporan prestasi pelajar dengan cepat. Artikel ini akan memperkenalkan cara menggunakan Java untuk menulis penjana laporan prestasi pelajar yang mudah. Pertama, kita perlu menentukan objek pelajar dan objek gred pelajar. Objek pelajar mengandungi maklumat asas seperti nama pelajar dan nombor pelajar, manakala objek skor pelajar mengandungi maklumat seperti skor mata pelajaran pelajar dan gred purata. Berikut ialah definisi objek pelajar mudah: awam

Bagaimana untuk menulis sistem pengurusan kehadiran pelajar yang mudah menggunakan Java? Bagaimana untuk menulis sistem pengurusan kehadiran pelajar yang mudah menggunakan Java? Nov 02, 2023 pm 03:17 PM

Bagaimana untuk menulis sistem pengurusan kehadiran pelajar yang mudah menggunakan Java? Dengan perkembangan teknologi yang berterusan, sistem pengurusan sekolah juga sentiasa dikemas kini dan dinaik taraf. Sistem pengurusan kehadiran pelajar adalah bahagian penting daripadanya. Ia boleh membantu sekolah mengesan kehadiran pelajar dan menyediakan analisis data dan laporan. Artikel ini akan memperkenalkan cara menulis sistem pengurusan kehadiran pelajar yang mudah menggunakan Java. 1. Analisis Keperluan Sebelum mula menulis, kita perlu menentukan fungsi dan keperluan sistem. Fungsi asas termasuk pendaftaran dan pengurusan maklumat pelajar, merekod data kehadiran pelajar dan

Menyahmistifikasi nilai lulus dan rujukan lulus dalam panggilan fungsi PHP Menyahmistifikasi nilai lulus dan rujukan lulus dalam panggilan fungsi PHP Apr 16, 2024 pm 02:39 PM

Panggilan fungsi dalam PHP boleh dihantar melalui nilai atau rujukan. Lalai adalah untuk lulus mengikut nilai, fungsi menerima salinan parameter, dan pengubahsuaian padanya tidak menjejaskan nilai asal. Rujukan lulus diisytiharkan dengan menambahkan simbol & sebelum parameter, dan fungsi tersebut secara langsung mengubah suai pembolehubah yang diluluskan. Melewati rujukan berguna apabila anda memerlukan fungsi untuk mengubah suai pembolehubah luaran, seperti elemen tatasusunan.

ChatGPT Java: Bagaimana untuk membina sistem pengesyoran muzik pintar ChatGPT Java: Bagaimana untuk membina sistem pengesyoran muzik pintar Oct 27, 2023 pm 01:55 PM

ChatGPTJava: Bagaimana untuk membina sistem pengesyoran muzik pintar, contoh kod khusus diperlukan Pengenalan: Dengan perkembangan pesat Internet, muzik telah menjadi bahagian penting dalam kehidupan seharian manusia. Apabila platform muzik terus muncul, pengguna sering menghadapi masalah biasa: bagaimana untuk mencari muzik yang sesuai dengan citarasa mereka? Untuk menyelesaikan masalah ini, sistem pengesyoran muzik pintar telah wujud. Artikel ini akan memperkenalkan cara menggunakan ChatGPTJava untuk membina sistem pengesyoran muzik pintar dan menyediakan contoh kod khusus. Tidak.

Program Java: Gunakan huruf besar pertama setiap perkataan dalam rentetan Program Java: Gunakan huruf besar pertama setiap perkataan dalam rentetan Aug 20, 2023 pm 03:45 PM

Astringisaclassof'java.lang'packagethatstoresaseriesofcharacters.Thosecharacterreally actuallyString-typeobjects.Kami mesti menutup nilai rentetan dalam petikan berganda.Secara amnya, kami boleh mewakili aksara dalam huruf kecil dan dua huruf dalam Java.Dan, ia juga mungkin untuk ditukar

Bagaimana untuk melaksanakan algoritma carian pertama luas menggunakan java Bagaimana untuk melaksanakan algoritma carian pertama luas menggunakan java Sep 19, 2023 pm 06:04 PM

Cara menggunakan Java untuk melaksanakan algoritma carian pertama keluasan algoritma Carian Pertama Keluasan (Breadth-FirstSearch, BFS) ialah algoritma carian yang biasa digunakan dalam teori graf, yang boleh mencari laluan terpendek antara dua nod dalam graf. BFS digunakan secara meluas dalam banyak aplikasi, seperti mencari laluan terpendek dalam mez, perangkak web, dsb. Artikel ini akan memperkenalkan cara menggunakan bahasa Java untuk melaksanakan algoritma BFS, dan melampirkan contoh kod tertentu. Pertama, kita perlu menentukan kelas untuk menyimpan nod graf Kelas ini mengandungi nod

Alat pemantauan dan penalaan prestasi biasa dalam pembangunan Java Alat pemantauan dan penalaan prestasi biasa dalam pembangunan Java Oct 10, 2023 pm 01:49 PM

Alat pemantauan dan penalaan prestasi biasa dalam pembangunan Java memerlukan contoh kod khusus Pengenalan: Dengan pembangunan berterusan teknologi Internet, Java, sebagai bahasa pengaturcaraan yang stabil dan cekap, digunakan secara meluas dalam proses pembangunan. Walau bagaimanapun, disebabkan sifat merentas platform Java dan kerumitan persekitaran berjalan, isu prestasi telah menjadi faktor yang tidak boleh diabaikan dalam pembangunan. Untuk memastikan ketersediaan tinggi dan respons pantas aplikasi Java, pembangun perlu memantau dan menala prestasi. Artikel ini akan memperkenalkan beberapa pemantauan dan penalaan prestasi Java biasa

Cara menggunakan Java untuk melaksanakan fungsi statistik inventori sistem pengurusan gudang Cara menggunakan Java untuk melaksanakan fungsi statistik inventori sistem pengurusan gudang Sep 24, 2023 pm 01:13 PM

Cara menggunakan Java untuk melaksanakan fungsi statistik inventori sistem pengurusan gudang Dengan perkembangan e-dagang dan peningkatan kepentingan pengurusan pergudangan, fungsi statistik inventori telah menjadi bahagian yang amat diperlukan dalam sistem pengurusan gudang. Sistem pengurusan gudang yang ditulis dalam Java boleh melaksanakan fungsi statistik inventori melalui kod ringkas dan cekap, membantu syarikat mengurus storan gudang dengan lebih baik dan meningkatkan kecekapan operasi. 1. Pengenalan latar belakang Sistem pengurusan gudang merujuk kepada kaedah pengurusan yang menggunakan teknologi komputer untuk melaksanakan pengurusan data, pemprosesan maklumat dan analisis membuat keputusan ke atas gudang perusahaan. Statistik inventori ialah

See all articles