Unterschied zwischen String & Stringbuffer!

Status
Nicht offen für weitere Antworten.

Agent_Smith

Mitglied
Hallo ich hab mal die Geschichte in meinem Buch über String und Strinbuffer durchgelesen und dort steht, das man einen String nicht verändern kann und das es konstant bleibt, also nimmt man einen Stringbuffer um den Wert zu verändern.
aber ich habe es im JavaEditor ausprobiert und man kann einen String verändern.

kann mir mal das jemand erklären ???
 
S

SlaterB

Gast
einen String kannst du nicht verändern,
höchstens einen anderen String in die gleiche Variable schreiben,

das ist aber was anderes, z.B. bekommen davon andere Stellen des Codes, die auf das alte Objekt referenzieren, nix mit

Code:
public class Test
{
    private String st;
    private StringBuffer b;

    public Test(String st, StringBuffer b)
    {
        this.st = st;
        this.b = b;
    }

    public String toString()
    {
        return st + ", " + b;
    }

    public static void main(String[] args)
        throws Exception
    {
        String st = "Hello";
        StringBuffer b = new StringBuffer("World");
        Test test = new Test(st, b);
        System.out.println(test);
        st = "was";
        b.setLength(0);
        b.append("anderes");
        System.out.println(test);
    }
}
 

ARadauer

Top Contributor
du veränderst nicht den string sondern es wird ein neuer erstellt.
String b= "xxx";
String a = "bier"+b;

das sind glaub ich 3 strings: a, "bier", b,

wenn du in einer schleife 1000 mal an einen string einen buchstaben ahängst, dann hast aufeinmal 1000 Objekte... das kann inerhalb von schleifen so enormen geschwindigkeits problemen führen....
 

Agent_Smith

Mitglied
ach so ist das gemeint, ach noch ne frage ich wollte mal die Stringbuffer-Funktion ausprobieren aber er zeigt mir einen Fehler an, soll ich damit es funktioniert irgendetwas importieren??
Das Buch was ich über Java lese ist voll Sch....!!!^^
ist umständlich geschrieben für einen Anfänger wie mich.
 
S

SlaterB

Gast
für StringBuffer musst du nix importieren,
siehe auch mein Beispiel in der ersten Antwort,

bei Fehler poste Code + Fehlermeldung,
idealerweise natürlich vorher selber nachdenken ;)
 

MASTERmind

Bekanntes Mitglied
Beispiel:
Code:
String a ="Hallo Du da";
a.toLowerCase();
System.out.println(a);

Kommt trotzdem : "Hallo Du da" raus, weil Strings immutable!
 

sparrow

Top Contributor
MASTERmind hat gesagt.:
Beispiel:
Code:
String a ="Hallo Du da";
a.toLowerCase();
System.out.println(a);

Kommt trotzdem : "Hallo Du da" raus, weil Strings immutable!



Der Vergleich hinkt mir zu sehr.
Es wäre auch problemlos möglich eine String-Klasse im schreiben in der das von dir gezeigt Beispiel funktioniert.
Hier ist ja nur spezifiziert, dass .toLowerCase() ein neues String-Objekt zurück gibt.


Gruß
Sparrow
 
S

SlaterB

Gast
> eine String-Klasse im [zu?] schreiben

was ist denn 'eine String-Klasse'?
die von Java ist final, da geht das dann intelligenterweise nicht
 

Pappenheimer++

Bekanntes Mitglied
Wenn man die von dir erwähnte "String-Klasse" schreiben würde, wäre das Ergebnis ja wieder der StringBuilder/Buffer. Ein Teufelskreis :lol:
 

sparrow

Top Contributor
Sorry für den Typo.

Ich will ja auch nicht sagen, dass mastermind unrecht hat. Im Gegenteil.
Nur ist das gewählte Beispiel IMHO für Agent_Smith wenig hilfreich ist, denn wenn er die API zur Rate zieht, dann wird er sehen, dass die Methode einen String zurück gibt und somit ja keine Veränderung an dem bestehenden String vorgenommen wird. Daher hinkt es meiner Meinung nach.

Gruß
Sparrow
 

volker_2

Mitglied
Code:
package all;

public class Start
{
	public static void main(String[] args)
	{
		String v = new String("java");
		System.out.println(v);
		v = "peter";
		System.out.println(v);
	}
}
 
S

SlaterB

Gast
SlaterB hat gesagt.:
einen String kannst du nicht verändern,
höchstens einen anderen String in die gleiche Variable schreiben,

das ist aber was anderes, z.B. bekommen davon andere Stellen des Codes, die auf das alte Objekt referenzieren, nix mit

Beispiel siehe erste Antwort bzw lies dir den ganzen Thread durch
 
M

maki

Gast
sparrow hat gesagt.:
Sorry für den Typo.

Ich will ja auch nicht sagen, dass mastermind unrecht hat. Im Gegenteil.
Nur ist das gewählte Beispiel IMHO für Agent_Smith wenig hilfreich ist, denn wenn er die API zur Rate zieht, dann wird er sehen, dass die Methode einen String zurück gibt und somit ja keine Veränderung an dem bestehenden String vorgenommen wird. Daher hinkt es meiner Meinung nach.
.. und wenn eer die API Doc für String liest, merkt er auch, dass Strings nciht verändert werden können, immutables eben.
Wieso sollte der Vergleich hinken??

Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared. For example.....
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Unterschied zwischen String & char Array? Java Basics - Anfänger-Themen 5
S Unterschied zwischen Denkweisen Java Basics - Anfänger-Themen 13
Ras Unterschied zwischen parser xml and api xml Java Basics - Anfänger-Themen 7
X Was ist der Unterschied zwischen materialisierten und nichtmaterialisierten Attributen einer Klasse? Java Basics - Anfänger-Themen 1
jhCDtGVjcZGcfzug Was ist der Unterschied zwischen diesen Quellcodes? Java Basics - Anfänger-Themen 3
Y Unterschied zwischen WindowBuilder und herkömmlichen erstellen des GUI´s? Java Basics - Anfänger-Themen 9
U Worin besteht der Unterschied zwischen call by reference und call by value? Java Basics - Anfänger-Themen 14
E Unterschied zwischen new und import Java Basics - Anfänger-Themen 5
B Unterschied zwischen (List<T> a) und (T[] a) Java Basics - Anfänger-Themen 7
Aprendiendo Unterschied zwischen Referenzvariable und Instanzvariable. Java Basics - Anfänger-Themen 2
N Unterschied zwischen Checked und Unchecked Exceptions Java Basics - Anfänger-Themen 12
schoenosrockos Unterschied zwischen Objekten und vererbungen Java Basics - Anfänger-Themen 1
J Variablen Unterschied zwischen lokalen-, Instanz-, Klassenvariablen Java Basics - Anfänger-Themen 6
L Unterschied zwischen Klassen - und Instanzvarbiablen Java Basics - Anfänger-Themen 1
M Unterschied zwischen Classpath eines Eclipse Projektes und dem CLASSPATH? Java Basics - Anfänger-Themen 3
D Unterschied zwischen double und Double Java Basics - Anfänger-Themen 4
Q Unterschied zwischen static und keinem Modifier Java Basics - Anfänger-Themen 15
K Unterschied zwischen Jar, war und ear Dateien Java Basics - Anfänger-Themen 3
T Unterschied zwischen Integrationstest und JUnit test? Java Basics - Anfänger-Themen 12
K Unterschied zwischen break und continue in einer Schleife Java Basics - Anfänger-Themen 14
A Exakte Unterschied zwischen Java EE und Java SE? Java Basics - Anfänger-Themen 4
J Unterschied zwischen statische und nicht statische Methoden? Java Basics - Anfänger-Themen 14
O Java unterschied zwischen Interface und Interface_Referenzen!!?? Java Basics - Anfänger-Themen 7
J unterschied zwischen awt und swing Java Basics - Anfänger-Themen 6
B Was ist der unterschied zwischen Singleton und Strategy? Java Basics - Anfänger-Themen 6
B Variablen: unterschied zwischen Klassen und Instanzvariable Java Basics - Anfänger-Themen 2
H Unterschied zwischen 2 Date in Sekunden am einfachsten? Java Basics - Anfänger-Themen 5
tanja Der Unterschied Zwischen Arrays in Java und ADA Java Basics - Anfänger-Themen 11
ModellbahnerTT Unterschied zwischen zwei Frame close Varianten Java Basics - Anfänger-Themen 3
V Unterschied zwischen J2EE und JEE ?? Java Basics - Anfänger-Themen 1
N Was ist der Unterschied zwischen ArrayList und Vector? Java Basics - Anfänger-Themen 3
A Unterschied zwischen Checked und unchecked Exception Java Basics - Anfänger-Themen 3
C Unterschied zwischen Polymorphie und Typcasting Java Basics - Anfänger-Themen 10
G Unterschied zwischen den Datenstrukturen Java Basics - Anfänger-Themen 2
M Unterschied zwischen . Compiler und JIT-Compiler,Hotspot-VM Java Basics - Anfänger-Themen 2
C Unterschied zwischen ArrayList und Vector Java Basics - Anfänger-Themen 2
I_Oscuridad Unterschied zwischen Objektorientiert und prozedural ? Java Basics - Anfänger-Themen 8
G Was ist der unterschied zwischen return und ? Java Basics - Anfänger-Themen 3
G Unterschied zwischen Java 2 bis 6 Java Basics - Anfänger-Themen 12
G Unterschied zwischen SwingWorker und "normalem" Th Java Basics - Anfänger-Themen 3
J Unterschied zwischen 2 Grafik Methoden Java Basics - Anfänger-Themen 2
G unterschied zwischen in.read() und in.read(byte [] b, int. Java Basics - Anfänger-Themen 3
G Unterschied zwischen SQL Timestamp und Java Java Basics - Anfänger-Themen 2
A Unterschied zwischen HashMap und Hashtable Java Basics - Anfänger-Themen 20
G Unterschied zwischen Assoziation, Aggregation u. Komposition Java Basics - Anfänger-Themen 7
G Unterschied zwischen & und && Java Basics - Anfänger-Themen 1
G Unterschied zwischen Ant und Maven Java Basics - Anfänger-Themen 9
K Unterschied zwischen Color.white und Color.WHITE? Java Basics - Anfänger-Themen 4
O Unterschied zwischen static und public Java Basics - Anfänger-Themen 2
G Was ist der Unterschied zwischen length und length()? Java Basics - Anfänger-Themen 7
N Unterschied zwischen Beans finden Java Basics - Anfänger-Themen 2
L Unterschied zwischen Objekten, Arrays und Strings Java Basics - Anfänger-Themen 2
G Unterschied zwischen Integer und int in java Java Basics - Anfänger-Themen 8
C Unterschied zwischen, Applet, Java und JavaScript Java Basics - Anfänger-Themen 3
K gibt es einen unterschied zwischen .JAVA und .java ? Java Basics - Anfänger-Themen 4
ven000m Unterschied zwischen: ADT & generischer Programmierung Java Basics - Anfänger-Themen 2
H Unterschied zwischen Stack und Array Java Basics - Anfänger-Themen 3
M Unterschied zwischen J2SE 5.0 Update x und J2SE 1.4.x Java Basics - Anfänger-Themen 4
C Unterschied zwischen equals und == ? Java Basics - Anfänger-Themen 6
D Unterschied zwischen Referenz auf Objekt/Instanz von Objekt Java Basics - Anfänger-Themen 9
G verstehe den unterschied zwischen equals und == nicht Java Basics - Anfänger-Themen 3
P Unterschied zwischen Interface und Vererbung und Sinn? Java Basics - Anfänger-Themen 5
M Unterschied zwischen J2SE, JSEE und JDK Java Basics - Anfänger-Themen 8
R Unterschied zwischen a++ und ++a Java Basics - Anfänger-Themen 9
G Unterschied zwischen homogenen und heterogenen Liste Java Basics - Anfänger-Themen 9
D Unterschied zwischen Ziffer und Zahl Java Basics - Anfänger-Themen 9
R Unterschied zwischen Integer und int Java Basics - Anfänger-Themen 6
B Was ist der Unterschied zwischen .java- und .class Dateien Java Basics - Anfänger-Themen 3
MoxMorris Integer.MAX_VALUE und Double.MAX_VALUE Unterschied Java Basics - Anfänger-Themen 3
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
berserkerdq2 Größter unterschied von extends thread und implements runnable? Java Basics - Anfänger-Themen 2
P Unterschied Installation von zipped JDK vs Installer-JDK (auf Windows)? Java Basics - Anfänger-Themen 2
M Unterschied Integer.toString(x) und x.toString() Java Basics - Anfänger-Themen 22
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
K Unterschied Information Hiding und Kapselung? Java Basics - Anfänger-Themen 2
G Methoden wo ist der Unterschied?? Java Basics - Anfänger-Themen 11
D Unterschied charAt() substr() Java Basics - Anfänger-Themen 3
D Unterschied == und equals in Arrays Java Basics - Anfänger-Themen 2
H Unterschied Konstruktor und Klassenname x = new Klassenname; Java Basics - Anfänger-Themen 3
H .jar unterschied .class Java Basics - Anfänger-Themen 3
O Unterschied Arrays, Listen, Mengen Java Basics - Anfänger-Themen 24
K Unterschied for-Schleife Java Basics - Anfänger-Themen 14
M Schlüsselworte Unterschied: String.matches und Pattern.compile Java Basics - Anfänger-Themen 2
G Unterschied Instanz- Klassenvariable Java Basics - Anfänger-Themen 11
C Methoden Unterschied zwichen public int, public static int und public static void Java Basics - Anfänger-Themen 2
H Unterschied BufferedReader und BufferedInputStream Java Basics - Anfänger-Themen 4
N Unterschied von Post- und Preinkrement Java Basics - Anfänger-Themen 3
T Unterschied dynamischer und statischer Laufzeittyp Java Basics - Anfänger-Themen 1
D Unterschied Date - Calendar Java Basics - Anfänger-Themen 1
J Warum ist das ein Unterschied (Integer / int) Java Basics - Anfänger-Themen 2
S Erste Schritte Unterschied "if" und "else if" Java Basics - Anfänger-Themen 27
F Erste Schritte Unterschied: Array "leer" / "null" Java Basics - Anfänger-Themen 3
V Unterschied x++ und x=x++ Java Basics - Anfänger-Themen 6
O Unterschied Baum <-> Automat Java Basics - Anfänger-Themen 2
A Klassen Unterschied Warteschlange, Stapel und Liste Java Basics - Anfänger-Themen 3
M Wo liegt der Unterschied? Deklaration Klasse oder Konstruktur Java Basics - Anfänger-Themen 3
S Unterschied print() und println() Java Basics - Anfänger-Themen 3
S Unterschied .jar Datei ausführen und junit Testfall... Java Basics - Anfänger-Themen 3
S Datentypen Unterschied elementare und zusammengesetzte/strukturierte Datentypen Java Basics - Anfänger-Themen 5
S Unterschied Ausführung in IDE <-> Befehlszeile Java Basics - Anfänger-Themen 0

Ähnliche Java Themen

Neue Themen


Oben