Definition / Deklaration

G

geBlain

Gast
Hallo,

wie sieht eine Deklaration eines Strings aus und wie eine Definition?

Deklaration= String name = new String();
Definition= String name = new String("hallo");

Ist das so richtig?

MFG
 

XHelp

Top Contributor
Hm, ne, ich glaube nicht.
Ich denke die Begriffe nehmen sich bei Variablen nichts.
Bei Methoden z.B.: bei Interfaces deklarierst du die Methoden. Wenn du das Interace dann implementierst, dann Definierst du diese.

Aber unabhängig davon, ob es ein Unterschied zwischen Deklaration und Definition gibt: Deine 2 Beispiele sind gleich.
 
Zuletzt bearbeitet:

timbeau

Gesperrter Benutzer
Ich kenne nur Deklaration und Initialisierung

int a; vs int a = 2;

Bei Strings sind String s = "hallo" und String s = new String("hallo")
weitestgehend identisch.
 
Zuletzt bearbeitet:

nrg

Top Contributor
Bei Strings sind String s = "hallo" und String s = new String("hallo")
weitestgehend identisch.

Nicht wirklich. String s = "hallo"; ist ein Stringliteral und landet im Pool. Somit erfolgt auch die Speicheroptimierung, weil zuvor gecheckt wird, ob bereits ein gleiches Stringliteral im Pool existiert. String s = new String("hallo"); erzeugt dir mit 100%iger Wahrscheinlichkeit ein neues Stringobjekt und landet afaik nur aufm heap (wenn ich dabei falsch liege, lasse ich mich gern eines besseren beraten :oops:).

What is String literal pool?

@topic:
also würde auch sagen, dass Deklaration bzw. Definition die Typisierung und Namensgebung ist und Initialisierung die Wertzuweisung.
 
Zuletzt bearbeitet:

timbeau

Gesperrter Benutzer
Du hast natürlich recht, was die Pool-Darstellung betrifft. Aber ist das bei heutigen Ressourcen noch bedeutend? Andere Gründe gibts bestimmt, aber in komplexere Programme/Probleme bin ich noch längst nicht vorgedrungen :)
 

XHelp

Top Contributor
Du hast natürlich recht, was die Pool-Darstellung betrifft. Aber ist das bei heutigen Ressourcen noch bedeutend? Andere Gründe gibts bestimmt, aber in komplexere Programme/Probleme bin ich noch längst nicht vorgedrungen :)
Das ist genau der Grund, warum man für jedes Spiel einen neuen Rechner braucht: "Code optimizieren? Tzzzz... wer braucht den so ein Quatsch... lass den User einfach mehr blechen".:pueh:
 
M

Marcinek

Gast
Es ist in dem Stringfall lediglich relevant, damit man nicht "==" für Stringvergleiche benutzt.

Weil du dann genau dieses Problem hast

new String("Hallo") ist ungleich "Hallo" aber "Hallo".equals(new String ("Hallo)) = true
 

nrg

Top Contributor
würde sagen ja :)

Es ist in dem Stringfall lediglich relevant, damit man nicht "==" für Stringvergleiche benutzt.

Weil du dann genau dieses Problem hast


new String("Hallo") ist ungleich "Hallo" aber "Hallo".equals(new String ("Hallo)) = true

schreib jetzt vom iPhone, also kann ich schwer den Compiler fragen aber ausm Kopf würd ich sagen letzteres ergibt false. wie gesagt, das erzeugt ein neues Objekt aufm heap und nicht im Pool als Literal.
 
Zuletzt bearbeitet:

XHelp

Top Contributor
Ich käme nie auf die Idee Strings mit new zu deklarieren...bin ich jetzt ein braver Coder? :rtfm:

Ich bin einfach über die Straße gelaufen, zufällig war die Ampel auf grün. Bin ich jetzt ein gesetzttreuer Bürger? :)
Natürlich lassen sich manche Sachen bei heutigen Größen vernachlässigen, aber Kleinvieh macht auch Mist.
 

Wortraum

Bekanntes Mitglied
Du hast natürlich recht, was die Pool-Darstellung betrifft. Aber ist das bei heutigen Ressourcen noch bedeutend?
Das kommt darauf an, was man macht. Für HelloWorld ist es unbedeutend. Hat man aber ohnehin schon viele Tausende Objekte in einigen Gigabyte verteilt, kämpft mit kompletten Speicherbereinigungen und blockierten JVMs, dann möchte man sicherlich nicht noch mehr Objekte anhäufen.
 

Ezra

Bekanntes Mitglied
Hallo,

wie sieht eine Deklaration eines Strings aus und wie eine Definition?

Deklaration= String name = new String();
Definition= String name = new String("hallo");

Ist das so richtig?

MFG
Google ist Dein Freund.

http://de.wikipedia.org/wiki/Deklaration_%28Programmierung%29 hat gesagt.:
In der Informatik und Programmierung ist eine Deklaration die Festlegung von Dimension, Bezeichner, Datentyp und weiteren Aspekten einer Variablen oder eines Unterprogramms. Durch die Deklaration wird dem Compiler diese Variable bzw. dieses Unterprogramm bekannt gemacht; es ist damit zulässig, diese an anderen Stellen im selben Quelltext zu verwenden.

Bei Variablen spricht man von Definition, wenn der Compiler Code erzeugt, der entweder statisch (im Datensegment) oder dynamisch (zur Laufzeit) Speicherplatz für diese Variable reserviert. Bei Unterprogrammen spricht man von Definition, wenn an dieser Stelle der Quelltext des Unterprogramms angegeben ist, der vom Compiler übersetzt wird.

Deine Beispiele sind nicht korrekt.
String name = new String("hallo");
ist sowohl Deklaration als auch Definition. Tatsächlich muss das so aussehen:
String name; --> Deklaration
name = "hallo"; --> Definition
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J definition / deklaration Java Basics - Anfänger-Themen 2
I Deklaration und Definition Java Basics - Anfänger-Themen 7
S Methoden Deklaration u. Definition trennbar (wie in C)? Java Basics - Anfänger-Themen 9
Yjuq Generic Methode - Wie muss die List Definition aussehen? Java Basics - Anfänger-Themen 3
W OOP Definition / Abgrenzung dynamische Bindung Java Basics - Anfänger-Themen 11
D Methoden Definition einer Methode Java Basics - Anfänger-Themen 3
M Datentypen Java Datentyp Definition Java Basics - Anfänger-Themen 6
shiroX OOP Rekursive und Iterative Definition Java Basics - Anfänger-Themen 2
S Erste Schritte Suche nach einem guten JAVA-Buch (Definition im Thread) Java Basics - Anfänger-Themen 6
S Methoden Klassen Definition - Methodenaufruf Java Basics - Anfänger-Themen 7
P Klassen Instanz einer Klasse in ihrer eigenen Definition erzeugen? möglich? Java Basics - Anfänger-Themen 4
D Entwurfsmuster - Frage und Definition Java Basics - Anfänger-Themen 9
H Definition von Java Mutex: ReentrantLock Java Basics - Anfänger-Themen 6
J Benötige kurze Definition zum Programm Java Basics - Anfänger-Themen 2
K Definition Java Basics - Anfänger-Themen 4
G Definition einer Array Java Basics - Anfänger-Themen 3
G Definition einer logischen Variablen Java Basics - Anfänger-Themen 4
S Generizität Definition Java Basics - Anfänger-Themen 2
N Wieso funktioniert die Deklaration nicht Java Basics - Anfänger-Themen 3
D Datentypen Char deklaration Java Basics - Anfänger-Themen 4
mars90 Fehler in der Variablen Deklaration Java Basics - Anfänger-Themen 8
J Klassen Deklaration und Initialisierung Java Basics - Anfänger-Themen 15
R Erste Schritte Deklaration und Initialisierung von Arrays Java Basics - Anfänger-Themen 21
M Wo liegt der Unterschied? Deklaration Klasse oder Konstruktur Java Basics - Anfänger-Themen 3
M Deklaration und Initialisierung bei Method Erstellung Java Basics - Anfänger-Themen 12
M Erste Schritte package-Deklaration, Problem Java Basics - Anfänger-Themen 6
M Frage zu Generics-Deklaration Java Basics - Anfänger-Themen 5
A Array Deklaration Java Basics - Anfänger-Themen 6
B Erste Schritte Unterschiede bei der Deklaration von Strings Java Basics - Anfänger-Themen 4
K Protected und Private Deklaration Java Basics - Anfänger-Themen 8
G Erste Schritte Methodenaufruf, Variablen-Deklaration Java Basics - Anfänger-Themen 6
K Erste Schritte deklaration von int Java Basics - Anfänger-Themen 4
S Methode Deklaration Variablen initalisieren Java Basics - Anfänger-Themen 2
E Erste Schritte Umstieg von PHP - Deklaration Java Basics - Anfänger-Themen 9
D Datentypen Felder: Deklaration und Initialisierung Java Basics - Anfänger-Themen 5
S Deklaration 0x12 Java Basics - Anfänger-Themen 4
M fehler bei instanzvariablen deklaration?? Java Basics - Anfänger-Themen 6
F Datentypen Welchen Wert hat ein einfacher Datentyp nach der Deklaration? Java Basics - Anfänger-Themen 6
I Datentypen Unterschied in Deklaration von ArrayList Java Basics - Anfänger-Themen 26
Luk10 Deklaration von lokalen Variablen Java Basics - Anfänger-Themen 2
J Was genau davon ist Anweisung, was Deklaration? Java Basics - Anfänger-Themen 2
S OOP package Deklaration Java Basics - Anfänger-Themen 4
S BITTE UM HILFE: Unterschied Deklaration und Signatur einer Methode Java Basics - Anfänger-Themen 3
A Deklaration von einem Array Java Basics - Anfänger-Themen 9
A Deklaration eines Arrays Java Basics - Anfänger-Themen 11
R Deklaration: was passiert da? Java Basics - Anfänger-Themen 3
G Deklaration und Sichtbarkeit von Variablen Java Basics - Anfänger-Themen 2
C Deklaration einer Variablen in einem rekursivem Aufruf Java Basics - Anfänger-Themen 5
K Variablen Deklaration Java Basics - Anfänger-Themen 3
B Deklaration eines char-array Java Basics - Anfänger-Themen 2
J Probleme mit Deklaration Java Basics - Anfänger-Themen 13
B variable deklaration und wert speichern in 2 anweisungen? Java Basics - Anfänger-Themen 20
L Variablen-Deklaration Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben