(dans main)
[pour s1 = new StringBuilder("s1")]
-> création en mémoire de la chaîne de caractères "s1"
-> création en mémoire d'une variable 'StringBuilder' nommée 's1'
-> utilisation de l'objet 's1' pour ajouter la valeur de la chaîne de caractères "s1"
[pour s2 = new StringBuilder("s2")]
-> création en mémoire de la chaîne de caractères "s2"
-> création en mémoire d'une variable 'StringBuilder' nommée 's2'
-> utilisation de l'objet 's2' pour ajouter la valeur de la chaîne de caractères "s2"
[pour s3 = work(s1, s2)]
(dans la méthode work)
-> création en mémoire d'une variable 'StringBuilder' nommée 'a'
-> affectation de l'adresse de la variable 's1' à 'a'
-> création en mémoire d'une variable 'StringBuilder' nommée 'b'
-> affectation de l'adresse de la variable 's2' à 'b'
-> création en mémoire de la chaîne de caractères "a"
-> création en mémoire d'une variable 'StringBuilder' nommée 'x'
-> utilisation de l'objet 'x' pour ajouter la chaîne de caractères "a"
-> affection de l'adresse de 'x' à 'a' (jusque là, 'a' pointait sur 's1')
-> création en mémoire de la chaîne de caractères "b"
-> utilisation de l'objet 'b' pour ajouter la chaîne de caractères "b" (b référence s2 et manipule donc la même chose)
(retour dans main avec l'adresse de l'objet 'StringBuilder' nommée 'a')
-> création en mémoire d'une variable 'StringBuilder' nommée 's3'
-> affectation à l'objet 's3' de l'adresse de la variable 'StringBuilder' du retour de la méthode work ('s3' pointe maintenant sur l'adresse de l'objet 'StringBuilder' nommé 'a')
Partager