Du passage de string par référence
Bonsoir,
J'avais cru comprendre que les objets étaient passés par référence en Java, or avec le code suivant, on s'attend bien à ce que l'objet str soit modifié dans le main :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| public static void main(String[] args) {
String str = new String("ma_string");
System.out.println("str is: " + str);
chgString(str);
System.out.println("str modified is: " + str);
}
public static void chgString(String string) {
System.out.println("str to modify in chgString() method is: " + string);
string = new String("string_modifiee");
System.out.println("str modified in chgString() method is: " + string);
} |
Mais le résultat est le suivant :
Code:
1 2 3 4 5
| java -jar test.jar
str is: ma_string
str to modify in chgString() method is: ma_string
str modified in chgString() method is: string_modifiee
str modified is: ma_string |
Quelqu'un pourrait-il m'expliquer ce qu'il se passe ?
Merci bien.