Zeichenkette: Unterschied zwischen den Versionen

Aus EINI
Wechseln zu: Navigation, Suche
(Strings in Java)
(Strings in Java)
Zeile 5: Zeile 5:
 
In [[Java]] haben Strings jedoch eine eigene, von anderen Programmelementen abgehobene Syntax und Semantik. Hier sind Strings [[Objekt]]e. Sie besitzen jedoch die Eigenschaft, dass sie mit dem '''+'''-[[Operator]] konkateniert (d. h. aneinandergehängt) werden können. Dabei bleiben die beteiligten Strings so wie sie sind erhalten. Stattdessen wird ein neues Stringobjekt erstellt, das die neue Zeichenkette repräsentiert.
 
In [[Java]] haben Strings jedoch eine eigene, von anderen Programmelementen abgehobene Syntax und Semantik. Hier sind Strings [[Objekt]]e. Sie besitzen jedoch die Eigenschaft, dass sie mit dem '''+'''-[[Operator]] konkateniert (d. h. aneinandergehängt) werden können. Dabei bleiben die beteiligten Strings so wie sie sind erhalten. Stattdessen wird ein neues Stringobjekt erstellt, das die neue Zeichenkette repräsentiert.
  
Im Quellcode kann zudem eine Zeichenkette zwischen Anführungszeichen ''' " ''' deklariert werden: <source lang="java">String foo = "bar";</source>
+
Im Quellcode kann zudem eine Zeichenkette zwischen Anführungszeichen ''' " ''' deklariert werden:  
 +
 
 +
<source lang="java">
 +
String foo = "bar";
 +
</source>
 +
 
 +
Ein Zwischen solchen Anführungszeichen angegebener Text ist ein Stringobjekt -- genauer: Eine Referenz auf einen String mit dem entsprechenden Inhalt in einem von der [[JVM]] verwalteten Pool an Zeichenketten. Dieser Pool wird während dem Übersetzungsprozess definiert. Kommt eine Zeichenkette, wie z.B. "Hallo Welt" mehrmals direkt im Quellcode vor, repräsentieren alle Vorkommen dieser Zeichenkette eine Referenz auf den selben String im konstanten Stringpool.
  
 
=Hallo Welt=
 
=Hallo Welt=
  
 
Gibt man in Java eine Zeichenkette direkt an, wie z.B. <code>"Hallo Welt"</code>, so wird beim Übersetzungsprozess ein Zeichenkettenobjekt in einem von der [[Bibliothek|Standardbibliothek]] verwalteten Pool an konstant angegebenen Zeichenketten hinterlegt. Wird an anderer Stelle im Quellcode die Zeichenkette <code>"Hallo Welt"</code> erneut angegeben, so referenzieren beide Zeichenketten den selben String. Da die Stringklasse jedoch keine [[Methode|Methoden]] bereitstellt, um die intern verwaltete Zeichenkette zu manipulieren, ist dies mit keinem zu beachtenden Problemen verbunden, außer, dass man Strings besser mit der <code>.equals()</code> Methode miteinander vergleichen soll, da die Referenzen, die mit '''==''' verglichen werden, nicht unbedingt die gleichen sein müssen.
 
Gibt man in Java eine Zeichenkette direkt an, wie z.B. <code>"Hallo Welt"</code>, so wird beim Übersetzungsprozess ein Zeichenkettenobjekt in einem von der [[Bibliothek|Standardbibliothek]] verwalteten Pool an konstant angegebenen Zeichenketten hinterlegt. Wird an anderer Stelle im Quellcode die Zeichenkette <code>"Hallo Welt"</code> erneut angegeben, so referenzieren beide Zeichenketten den selben String. Da die Stringklasse jedoch keine [[Methode|Methoden]] bereitstellt, um die intern verwaltete Zeichenkette zu manipulieren, ist dies mit keinem zu beachtenden Problemen verbunden, außer, dass man Strings besser mit der <code>.equals()</code> Methode miteinander vergleichen soll, da die Referenzen, die mit '''==''' verglichen werden, nicht unbedingt die gleichen sein müssen.

Version vom 17. März 2016, 22:29 Uhr

Eine Zeichenkette, oder auch (engl.) String, ist eine Folge von Zeichen und Symbolen. Als solche werden sie in den meisten Programmiersprachen als Array von chars umgesetzt.

Strings in Java

In Java haben Strings jedoch eine eigene, von anderen Programmelementen abgehobene Syntax und Semantik. Hier sind Strings Objekte. Sie besitzen jedoch die Eigenschaft, dass sie mit dem +-Operator konkateniert (d. h. aneinandergehängt) werden können. Dabei bleiben die beteiligten Strings so wie sie sind erhalten. Stattdessen wird ein neues Stringobjekt erstellt, das die neue Zeichenkette repräsentiert.

Im Quellcode kann zudem eine Zeichenkette zwischen Anführungszeichen " deklariert werden:

String foo = "bar";

Ein Zwischen solchen Anführungszeichen angegebener Text ist ein Stringobjekt -- genauer: Eine Referenz auf einen String mit dem entsprechenden Inhalt in einem von der JVM verwalteten Pool an Zeichenketten. Dieser Pool wird während dem Übersetzungsprozess definiert. Kommt eine Zeichenkette, wie z.B. "Hallo Welt" mehrmals direkt im Quellcode vor, repräsentieren alle Vorkommen dieser Zeichenkette eine Referenz auf den selben String im konstanten Stringpool.

Hallo Welt

Gibt man in Java eine Zeichenkette direkt an, wie z.B. "Hallo Welt", so wird beim Übersetzungsprozess ein Zeichenkettenobjekt in einem von der Standardbibliothek verwalteten Pool an konstant angegebenen Zeichenketten hinterlegt. Wird an anderer Stelle im Quellcode die Zeichenkette "Hallo Welt" erneut angegeben, so referenzieren beide Zeichenketten den selben String. Da die Stringklasse jedoch keine Methoden bereitstellt, um die intern verwaltete Zeichenkette zu manipulieren, ist dies mit keinem zu beachtenden Problemen verbunden, außer, dass man Strings besser mit der .equals() Methode miteinander vergleichen soll, da die Referenzen, die mit == verglichen werden, nicht unbedingt die gleichen sein müssen.