Cet article vous apporte une introduction détaillée à l'appel par valeur et à l'appel par référence de Java. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. .
Le sujet est le suivant :

Deux façons de passer des paramètres en Java
- appel par valeur (transfert de valeur) : passé Est la valeur (pour les types de données de base), par exemple en passant une valeur entière. En fait, dans une méthode d'appel de méthode passée par valeur, les paramètres ne sont qu'une copie des paramètres réels.
- Appel par référence : ce qui est passé est une référence à l'objet (pour l'objet), c'est-à-dire que ce qui est passé est l'adresse de l'objet. En fait, lorsqu'une référence est passée, une nouvelle copie de la référence sera générée, et l'ancienne et la nouvelle référence pointeront vers la même adresse.
Exemple de code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | public class TestJavaCallBy {
public static void testCallByValue(int value) {
value *= 10;
}
public static void testCallByReference(StringBuilder sb) {
sb.append( " - " + ZonedDateTime.now());
}
public static void main(String[] args) {
int param = 1;
StringBuilder sb = new StringBuilder( "666" );
System.out.println(param);
testCallByValue(param);
System.out.println(param);
System.out.println(sb.toString());
testCallByReference(sb);
System.out.println(sb.toString());
}
}
控制台输出结果
1
1
666
666 - 2019-03-16T01:25:57.933038500+08:00[Asia/Shanghai]
|
Copier après la connexion
Ensuite, nous pouvons tirer la conclusion :
- l'appel par valeur ne changera pas la valeur du paramètre réel
- L'appel par référence ne peut pas changer l'adresse de référence du paramètre réel
- L'appel par référence peut modifier le contenu du paramètre réel
Alors la réponse à cette question est la suivante .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!