Wären Strings in Java veränderlich, hätte man keine Sicherheit was den drinnen steckt.
Dann würde Java so etwas wie bei C++ Zeiger besitzen, und das wollten die Designer von Java nicht haben.
z.B.
String hallo ="Hallo";
methode (hallo);
System.out.println (hallo);
...
void methode (String para)
{
para.set("Tschüss"); // gibt es nicht
}
Wenn man aber ein solches Verhalten haben will, kann man es auch in Java erzielen.
z.B.
class MutableString
{
private String wert;
public void set (String pWert) {wert= pWert;}
public String get () {return wert;}
}
...
MutableString ms = new MutableString ();
ms.set ("Hallo");
methode (ms);
System.out.println (ms.get ());
...
void methode (MutableString para)
{
para.set("Tschüss"); // Das geht
}