na vergiss mal das mit String und Daten unterschiedlich behandeln ..
der unterschied liegt darin, dass du einemal ein objekt selbst änders (String) und einmal eine Variable in einem Objekt.
der String lässt sich nicht manipulieren, sondern erzeugt immer einen neuen String, dadurch kannst du da nichts ändern.
das folgendes funktioniert, daran ist der compiler schuld
[code=Java]
String test = "hallo Welt";
[/code]
was eigentlich gemacht wird ist:
[code=Java]
String test = new String("hallo Welt");
[/code]
nehmen wir mal den folgenden Fall, dann wirst du keinen unterschied mehr feststellen:
[code=Java]
public class MyString {
public String text;
}
[/code]
und jetzt manipulieren wir:
[code=Java]
MyString mytext = new MyString();
mytext.text = "hallo welt";
System.out.println(mytext.text);
[/code]
was passiert?
Es wird ein neues String Objekt erzeugt ("hallo welt")
und davon die Referenz wird in "text" gespeichert.
wenn du jetzt das ganze einer methode übergibst und dort den "text" änderst, wird sich das auch im Objekt ändern.
Denn du setzt "text" auf ein neues String Objekt, aber das MyString Objekt bleibt unverändert.
Gruß oli