Rumah  >  Artikel  >  hujung hadapan web  >  Pengenalan kepada penugasan pembolehubah jenis String dalam pengetahuan Java_Basic

Pengenalan kepada penugasan pembolehubah jenis String dalam pengetahuan Java_Basic

WBOY
WBOYasal
2016-05-16 15:08:181749semak imbas

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.

Kenyataan:
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