Heim  >  Artikel  >  Web-Frontend  >  Einführung in die Zuweisung von Variablen vom Typ String in Java_Grundkenntnisse

Einführung in die Zuweisung von Variablen vom Typ String in Java_Grundkenntnisse

WBOY
WBOYOriginal
2016-05-16 15:08:181749Durchsuche

Führen Sie den folgenden Code aus. Was ist das Ergebnis?

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';
  }
  
}

Die Ergebnisse sind wie folgt:

good
gbc

Kommentar:

String in Java ist unveränderlich, das heißt, nach der Initialisierung ist der Inhalt, auf den seine Referenz verweist, unveränderlich (Hinweis: Der Inhalt ist unveränderlich).

Mit anderen Worten: Unter der Annahme, dass der Code String str = „aa“; enthält, ändert die zweite Anweisung nicht den Inhalt der ursprünglichen Speicheradresse von „aa“, sondern öffnet eine andere Wird zum Speichern von „bb“ verwendet. Da „aa“, auf das str ursprünglich zeigte, jetzt nicht mehr erreichbar ist, wird es von jvm automatisch über GC recycelt.

Beim Aufruf einer Methode werden der String-Typ und das Array als Referenz übergeben. Im obigen Code wird str als Parameter an die Methode „change(String str, char ch[])“ übergeben durch str in der Klasse, aber die Anweisung str = „test ok“; lässt den Methodenparameter str auf die neu zugewiesene Adresse zeigen, die „test ok“ speichert, während der ursprüngliche str immer noch auf „good“ zeigt. Bei Arrays zeigt in der Change-Methode der Methodenparameter ch auf das Array, auf das ch in der Klasse zeigt, und die Anweisung ch[0] = 'g' ändert den Inhalt des Arrays, auf das ch in der Klasse

Schauen wir uns noch einmal den folgenden Code an. Was ist das Ergebnis seiner Operation?


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' };
  }
  
}

Die Ergebnisse sind wie folgt:

good
abc
Ist dieses Ergebnis angesichts der vorherigen Erklärung zu erwarten? !

Die obige Einführung in die Zuweisung von String-Typ-Variablen in Java ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, dass er Ihnen eine Referenz geben kann, und ich hoffe, dass Sie Script Home unterstützen.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn