Bonjour,

Soit le bout de code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
public class Test {
 
	public static final StringBuffer style = new StringBuffer("original");
 
	public static final String str = "tpto";
 
	public static void main(String... argv) {
		Test t = new Test();
		t.modify(style);
		System.out.println(style);
	}
 
	public void modify(StringBuffer sb){
		sb.append(" modified");
	}
}
Dans ce bout de code, on définit un StringBuffer static final et donc pas modifiable, pourtant, à la fin de code on voit bien que sa valeur a été modifié.

Je sais que String et immutable contrairement a StringBuffer et Stringbuilder.

comment fonctionne ce mecanisme...?