Jalankan kod berikut, apakah hasilnya?
package com.test; public class Example { String str = new String("good"); char[] ch = { 'a', 'b', 'c' }; public static void main(String[] args) { Example ex = new Example(); ex.change(ex.str, ex.ch); System.out.println(ex.str); System.out.println(ex.ch); } public void change(String str, char ch[]) { str = "test ok"; ch[0] = 'g'; } }
Keputusan adalah seperti berikut:
good gbc
Ulasan:
String dalam Java tidak boleh diubah, iaitu, tidak boleh diubah Setelah dimulakan, kandungan yang ditunjukkan oleh rujukannya adalah tidak boleh diubah (nota: kandungan tidak boleh diubah).
Dalam erti kata lain, dengan mengandaikan bahawa terdapat String str = "aa"; str = "bb"; space. Digunakan untuk menyimpan "bb" pada masa yang sama, kerana "aa" yang pada asalnya ditunjuk sekarang tidak dapat dicapai, jvm akan mengitar semula secara automatik melalui GC.
Apabila memanggil kaedah, jenis String dan tatasusunan dihantar melalui rujukan Dalam kod di atas, str dihantar sebagai parameter kepada kaedah perubahan(String str, char ch[]) Parameter kaedah str menunjuk ke rentetan oleh str dalam kelas, tetapi str = "ujian ok"; pernyataan menjadikan parameter kaedah str menunjuk ke alamat yang baru diperuntukkan, yang menyimpan "ujian ok", manakala str asal masih menunjuk kepada "baik". Untuk tatasusunan, dalam kaedah perubahan, parameter kaedah ch menunjuk kepada tatasusunan yang ditunjuk oleh ch dalam kelas, dan pernyataan ch[0] = 'g' mengubah kandungan tatasusunan yang ditunjuk oleh ch dalam kelas
Mari kita lihat semula kod berikut.
package com.test; public class Example { String str = new String("good"); char[] ch = { 'a', 'b', 'c' }; public static void main(String[] args) { Example ex = new Example(); ex.change(ex.str, ex.ch); System.out.println(ex.str); System.out.println(ex.ch); } public void change(String str, char ch[]) { str = str.toUpperCase(); ch = new char[]{ 'm', 'n' }; } }
Keputusannya adalah seperti berikut:
good abc
Dengan penjelasan sebelum ini, adakah keputusan ini dijangkakan? !
Pengenalan di atas kepada penugasan pembolehubah jenis String dalam Java adalah semua kandungan yang dikongsi oleh editor saya harap ia dapat memberi anda rujukan, dan saya harap anda akan menyokong Script Home.