Rumah Java javaTutorial Penjelasan terperinci tentang perbezaan antara lulus mengikut nilai dan lulus melalui rujukan di Jawa dan kesannya

Penjelasan terperinci tentang perbezaan antara lulus mengikut nilai dan lulus melalui rujukan di Jawa dan kesannya

Jan 30, 2024 am 09:08 AM
java lulus dengan rujukan Pengaruh perbezaannya Lulus nilai

Penjelasan terperinci tentang perbezaan antara lulus mengikut nilai dan lulus melalui rujukan di Jawa dan kesannya

Lulus nilai dan lulus rujukan dalam Java adalah konsep penting yang mesti difahami oleh setiap pengaturcara Java. Artikel ini akan menerangkan perbezaan antara kedua-duanya secara terperinci dan memberikan contoh kod yang berkaitan untuk membantu pembaca memahami konsep ini dengan lebih baik.

Di Java, semua hantaran parameter dicapai dengan hantaran nilai. Iaitu, apabila kita lulus pembolehubah sebagai parameter kepada kaedah, apa yang sebenarnya dihantar kepada kaedah adalah salinan nilai pembolehubah. Oleh itu, sama ada jenis primitif atau jenis rujukan, apa yang diluluskan ialah salinan nilainya, bukan pembolehubah sebenar itu sendiri.

Pertama, mari kita lihat contoh lulus nilai. Katakan kita mempunyai swap kaedah mudah, yang digunakan untuk menukar nilai dua pembolehubah integer:

public static void swap(int a, int b) {
    int temp = a;
    a = b;
    b = temp;
}

public static void main(String[] args) {
    int x = 1;
    int y = 2;
    swap(x, y);
    System.out.println("x = " + x);
    System.out.println("y = " + y);
}
Salin selepas log masuk

Hasil output selepas kod di atas dilaksanakan ialah:

x = 1
y = 2
Salin selepas log masuk

Ia boleh dilihat bahawa walaupun a dan b ditukar di dalam nilai kaedah swap, tetapi nilai pembolehubah x dan y tidak diubah dalam kaedah utama. Ini kerana dalam kaedah swap, kita hanya menukar nilai x dan y dengan menyalinnya, dan bukannya mengubah suai nilainya secara langsung.

Seterusnya, mari kita lihat contoh rujukan lewat. Pembolehubah jenis rujukan dalam Java merujuk kepada rujukan kepada objek, bukan objek itu sendiri. Apabila kita menghantar pembolehubah jenis rujukan sebagai parameter kepada kaedah, apa yang sebenarnya dihantar kepada kaedah adalah salinan rujukan, iaitu, salinan rujukan diluluskan.

Mari kita lihat contoh kod:

public static void changeName(Student student) {
    student.setName("Alice");
}

public static void main(String[] args) {
    Student s = new Student("Bob");
    System.out.println("Before change: " + s.getName());
    changeName(s);
    System.out.println("After change: " + s.getName());
}

class Student {
    private String name;

    public Student(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
Salin selepas log masuk

Hasil output selepas kod di atas dilaksanakan ialah:

Before change: Bob
After change: Alice
Salin selepas log masuk

Ia boleh dilihat bahawa dalam kaedah changeName, kita menukar sifat pembolehubah jenis rujukan yang diluluskan oleh pelajar. dalam dengan mengubahnya Keadaan objek diubah, supaya keadaan objek asal juga diubah dalam kaedah utama.

Ringkasnya, perbezaan antara hantaran nilai dan hantaran rujukan dalam Java ialah sama ada salinan nilai atau salinan rujukan diluluskan. Untuk pembolehubah jenis asas, salinan nilai diluluskan, dan pengubahsuaian pada salinan dalam kaedah tidak akan menjejaskan nilai pembolehubah asal manakala untuk pembolehubah jenis rujukan, salinan rujukan diluluskan dan pengubahsuaian pada salinan dalam kaedah akan mempengaruhi pembolehubah asal.

Dalam pengaturcaraan praktikal, adalah penting untuk memahami perbezaan antara lulus dengan nilai dan lulus dengan rujukan untuk mengelakkan tingkah laku yang tidak dijangka. Oleh itu, semasa menulis program Java, kita harus memilih cara yang sesuai untuk lulus parameter berdasarkan jenis parameter dan keperluan.

Saya harap artikel ini akan membantu pembaca memahami perbezaan antara lulus nilai dan lulus rujukan dalam Java, dan boleh memberikan sedikit panduan dalam pengaturcaraan sebenar.

Atas ialah kandungan terperinci Penjelasan terperinci tentang perbezaan antara lulus mengikut nilai dan lulus melalui rujukan di Jawa dan kesannya. 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 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
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)

Apakah keperluan asas untuk fungsi bahasa C Apakah keperluan asas untuk fungsi bahasa C Apr 03, 2025 pm 10:06 PM

Fungsi bahasa C adalah asas untuk modularization kod dan bangunan program. Mereka terdiri daripada pengisytiharan (tajuk fungsi) dan definisi (badan fungsi). Bahasa C menggunakan nilai untuk lulus parameter secara lalai, tetapi pembolehubah luaran juga boleh diubahsuai menggunakan lulus alamat. Fungsi boleh mempunyai atau tidak mempunyai nilai pulangan, dan jenis nilai pulangan mestilah selaras dengan perisytiharan. Penamaan fungsi harus jelas dan mudah difahami, menggunakan nomenclature unta atau garis bawah. Ikuti prinsip tanggungjawab tunggal dan pastikan kesederhanaan fungsi untuk meningkatkan kebolehkerjaan dan kebolehbacaan.

Perbezaan antara program H5 dan mini dan aplikasi Perbezaan antara program H5 dan mini dan aplikasi Apr 06, 2025 am 10:42 AM

H5. Perbezaan utama antara program mini dan aplikasi ialah: Senibina Teknikal: H5 adalah berdasarkan teknologi web, dan program mini dan aplikasi adalah aplikasi bebas. Pengalaman dan Fungsi: H5 adalah ringan dan mudah digunakan, dengan fungsi terhad; Program mini adalah ringan dan mempunyai interaktif yang baik; Aplikasi berkuasa dan mempunyai pengalaman yang lancar. Keserasian: H5 adalah serasi, aplikasinya dan aplikasinya yang serasi dengan platform. Kos Pembangunan: H5 mempunyai kos pembangunan yang rendah, program mini sederhana, dan aplikasi tertinggi. Senario yang berkenaan: H5 sesuai untuk paparan maklumat, applet sesuai untuk aplikasi ringan, dan aplikasi sesuai untuk fungsi kompleks.

Apakah perbezaan dan hubungan antara C dan C#? Apakah perbezaan dan hubungan antara C dan C#? Apr 03, 2025 pm 10:36 PM

Walaupun C dan C# mempunyai persamaan, mereka sama sekali berbeza: C adalah pengurusan memori yang berorientasikan proses, dan bahasa yang bergantung kepada platform yang digunakan untuk pengaturcaraan sistem; C# adalah bahasa berorientasikan objek, sampah, dan bahasa bebas platform yang digunakan untuk desktop, aplikasi web dan pembangunan permainan.

Cara menetapkan perlindungan kata laluan untuk pdf eksport di ps Cara menetapkan perlindungan kata laluan untuk pdf eksport di ps Apr 06, 2025 pm 04:45 PM

Eksport PDF yang dilindungi kata laluan di Photoshop: Buka fail imej. Klik "Fail" & gt; "Eksport" & gt; "Eksport sebagai PDF". Tetapkan pilihan "Keselamatan" dan masukkan kata laluan yang sama dua kali. Klik "Eksport" untuk menghasilkan fail PDF.

Konsep fungsi bahasa c Konsep fungsi bahasa c Apr 03, 2025 pm 10:09 PM

F Fungsi bahasa adalah blok kod yang boleh diguna semula. Mereka menerima input, melakukan operasi, dan hasil pulangan, yang secara modular meningkatkan kebolehgunaan dan mengurangkan kerumitan. Mekanisme dalaman fungsi termasuk parameter lulus, pelaksanaan fungsi, dan nilai pulangan. Seluruh proses melibatkan pengoptimuman seperti fungsi dalam talian. Fungsi yang baik ditulis mengikut prinsip tanggungjawab tunggal, bilangan parameter kecil, penamaan spesifikasi, dan pengendalian ralat. Penunjuk yang digabungkan dengan fungsi dapat mencapai fungsi yang lebih kuat, seperti mengubahsuai nilai pembolehubah luaran. Pointer fungsi meluluskan fungsi sebagai parameter atau alamat kedai, dan digunakan untuk melaksanakan panggilan dinamik ke fungsi. Memahami ciri dan teknik fungsi adalah kunci untuk menulis program C yang cekap, boleh dipelihara, dan mudah difahami.

Bagaimana cara menggunakan XPath untuk mencari dari nod DOM yang ditentukan di JavaScript? Bagaimana cara menggunakan XPath untuk mencari dari nod DOM yang ditentukan di JavaScript? Apr 04, 2025 pm 11:15 PM

Penjelasan terperinci mengenai kaedah carian XPath di bawah nod Dom dalam JavaScript, kita sering perlu mencari nod tertentu dari pokok Dom berdasarkan ekspresi XPath. Sekiranya anda perlu ...

Mengapa anda perlu memanggil vue.use (vuerouter) dalam fail index.js di bawah folder penghala? Mengapa anda perlu memanggil vue.use (vuerouter) dalam fail index.js di bawah folder penghala? Apr 05, 2025 pm 01:03 PM

Keperluan mendaftarkan vuerouter dalam fail index.js di bawah folder penghala apabila membangunkan aplikasi VUE, anda sering menghadapi masalah dengan konfigurasi penghalaan. Khas ...

Rangka Kerja dan Fungsi Stack: Cara Membuat Overhead CPU Rangka Kerja dan Fungsi Stack: Cara Membuat Overhead CPU Apr 03, 2025 pm 08:09 PM

Saya terobsesi dengan semua aspek sains komputer dan kejuruteraan perisian, dan saya mempunyai keinginan istimewa untuk pengaturcaraan yang mendasari. Sangat menarik untuk meneroka mekanisme interaksi antara perisian dan perkakasan dan menganalisis tingkah laku sempadan mereka. Malah dalam pengaturcaraan aplikasi lanjutan, pengetahuan ini dapat membantu debug dan menyelesaikan masalah, seperti penggunaan memori stack. Memahami bagaimana memori stack berfungsi, terutamanya apabila berinteraksi dengan perkakasan, adalah penting untuk mengelakkan dan menyahpepijat masalah. Artikel ini akan meneroka bagaimana fungsi panggilan yang kerap dalam program boleh membawa kepada overhead dan mengurangkan prestasi. Membaca artikel ini memerlukan anda mempunyai asas pengetahuan tertentu stack, memori timbunan dan daftar CPU. Apakah kerangka timbunan? Katakan anda menjalankan program di komputer anda. Sistem operasi memanggil penjadual, memperuntukkan memori ke program anda, dan menyediakan CPU untuk melaksanakan arahan. ini

See all articles