Maison > interface Web > js tutoriel > Introduction à l'affectation des variables de type String dans les connaissances Java_Basic

Introduction à l'affectation des variables de type String dans les connaissances Java_Basic

WBOY
Libérer: 2016-05-16 15:08:18
original
1831 Les gens l'ont consulté

Exécutez le code suivant, quel est le résultat ?

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';
  }
  
}
Copier après la connexion

Les résultats sont les suivants :

good
gbc
Copier après la connexion

Commentaire :

String en Java est immuable, c'est-à-dire immuable. Une fois initialisé, le contenu pointé par sa référence est immuable (remarque : le contenu est immuable).

En d'autres termes, en supposant qu'il y ait String str = "aa"; str = "bb"; la deuxième instruction ne modifie pas le contenu de l'adresse de stockage d'origine de "aa", mais en ouvre une autre. space. Utilisé pour stocker "bb" en même temps, car "aa" vers lequel str pointait à l'origine est désormais inaccessible, jvm le recyclera automatiquement via GC.

Lors de l'appel d'une méthode, le type String et le tableau sont passés par référence. Dans le code ci-dessus, str est passé en paramètre à la méthode change(String str, char ch[]) Le paramètre de méthode str pointe vers la chaîne pointée. par str dans la classe, mais l'instruction str = "test ok"; fait que le paramètre de méthode str pointe vers l'adresse nouvellement allouée, qui stocke "test ok", tandis que la str d'origine pointe toujours vers "good". Pour les tableaux, dans la méthode change, le paramètre de méthode ch pointe vers le tableau pointé par ch dans la classe, et l'instruction ch[0] = 'g' modifie le contenu du tableau pointé par ch dans la classe < ; 🎜>

Regardons à nouveau le code suivant. Quel est le résultat de son fonctionnement ?


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' };
  }
  
}
Copier après la connexion

Les résultats sont les suivants :

good
abc
Copier après la connexion
Avec l'explication précédente, ce résultat est-il attendu ? !

L'introduction ci-dessus à l'affectation des variables de type String en Java est tout le contenu partagé par l'éditeur. J'espère qu'il pourra vous donner une référence et j'espère que vous prendrez en charge Script Home.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal