Unterschied zwischen der Initialisierung der Klasse und die Instanziierung eines Objekts?
Ich habe versucht, die Suche für diese Frage, über die Suchmaschine konnte aber ein Thema, erklärt den Unterschied zwischen der Initialisierung einer Klasse und instanziiert ein Objekt.
Könnte mir jemand erklären, wie unterscheiden Sie sich?
Es gibt keine solche Sache wie die Initialisierung einer Klasse. Meinst du die Initialisierung einer variable?
upvoters) Es ist definitiv etwas, entspricht die Initialisierung einer Klasse, aber ich erinnere mich nicht, wenn das die "juristischen" Begriff.
JLS 8.3.1.1 "Ein statisches Feld, manchmal auch als class-variable, verkörpert wird, wenn die Klasse initialisiert wird (§12.4)." Welchen Zeitraum sehen Sie das anders??
(Ich glaube, Sie, Leute, die Schulden der OP eine Entschuldigung ... und macht die downvotes auf seine Frage, da es offensichtlich nicht "common knowledge".)
Die Sache ist die, Sie verwendet ein vollkommen legitimer Begriff, aber ein paar Idioten dachten, es war der falsche Begriff und sprang auf Sie. Willkommen ALSO!
upvoters) Es ist definitiv etwas, entspricht die Initialisierung einer Klasse, aber ich erinnere mich nicht, wenn das die "juristischen" Begriff.
JLS 8.3.1.1 "Ein statisches Feld, manchmal auch als class-variable, verkörpert wird, wenn die Klasse initialisiert wird (§12.4)." Welchen Zeitraum sehen Sie das anders??
(Ich glaube, Sie, Leute, die Schulden der OP eine Entschuldigung ... und macht die downvotes auf seine Frage, da es offensichtlich nicht "common knowledge".)
Die Sache ist die, Sie verwendet ein vollkommen legitimer Begriff, aber ein paar Idioten dachten, es war der falsche Begriff und sprang auf Sie. Willkommen ALSO!
InformationsquelleAutor arnold_palmer | 2013-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es drei Stücke von Terminologie im Zusammenhang mit diesem Thema: Deklaration, Initialisierung und Instanziierung.
Arbeiten von hinten nach vorne.
Instanziierung
Dies ist, wenn Speicher reserviert für ein Objekt. Dies ist, was die
new
Schlüsselwort zu tun. Ein Verweis auf das Objekt, das erstellt wurde zurückgegeben, die von dernew
Stichwort.Initialisierung
Dies ist, wenn die Werte werden in den Speicher reserviert wurde. Dies ist, was die Konstruktor einer Klasse wird bei der Verwendung der
new
Stichwort.Muss eine variable auch initialisiert werden, indem mit der Referenz auf ein Objekt im Speicher übergeben werden.
Erklärung
Dies ist, wenn Sie zu dem Programm, es wird ein Objekt eines bestimmten Typs bestehende und das, was der name des Objekts, werden.
Beispiel für die Initialisierung und Instanziierung auf der gleichen Linie
Beispiel für die Initialisierung einer variable auf eine andere Zeile, um Speicher
Ich würde auch sehr empfehlen, das Lesen dieser Artikel auf die Art, wie Java-handles übergeben von Variablen.
Ich aktualisiert die post... lassen Sie mich wissen, wenn, dass geholfen!
wo "s" wird immer instanziert(wenn Ihr Speicher wird allokiert) ?
Dies ist nicht die richtige Antwort. Klasse-Initialisierung existiert. Suchen Sie in der Methode Class.forName(String). Ein Aufruf der Klasse.forName("X") bewirkt, dass die Klasse mit X initialisiert werden. docs.oracle.com/javase/7/docs/api/java/lang/...
Hallo, vielleicht arnold_palmer nicht wusste, was er fragte. Er fragte die Klasse initialisiert wird, aber vielleicht hat er nur gemeint, die Initialisierung einer variable. In diesem Fall, deine Antwort ist perfekt und sehr detailliert. [Dies ist, warum ich nicht downgraden, Ihre Antwort]. Sie erklärt sehr gut den Unterschied zwischen der Initialisierung einer Variablen instanziieren ein Objekt und eine variable deklarieren. Aber die Klasse initialisiert wird, ist etwas anderes. Es lädt die Klasse in den Speicher (Methoden, leitet die statischen Felder) und erzeugt ein Objekt vom Typ der Klasse. Ja, wahrscheinlich arnold_palmer gemeint "initialisieren eine variable"
InformationsquelleAutor lachy
Wenn eine Java-Klasse "geladen" in die JVM die class-Repräsentation muss initialisiert werden, in mehrfacher Hinsicht.
Gibt es eine Reihe von spezifischen Terminologie verwendet, um sich auf die Klasse initialisiert wird, aber ich erinnere mich nicht, die Besonderheiten. Bestimmte Dinge können nur auftreten, nachdem eine Klasse initialisiert wurde zu einem bestimmten Punkt, etc.
Instanziieren ein Objekt kann nur auftreten, nachdem die Klasse geladen und initialisiert wird (obwohl alle Methoden müssen nicht verifiziert wurden). Die Größe des Objekts ist geworden aus der Klasse und ein großer Haufen liegt und auf null gestellt. Der Objekt-header ist ausgefüllt mit einem Zeiger auf die Klasse und andere Felder verwendet, die Klasse zu führen. Dann wird der geeignete Konstruktor-Methode der Klasse aufgerufen wird (und es ruft alle super-Konstruktor).
InformationsquelleAutor Hot Licks
Initialisieren einer Klasse erfolgt mit einem statischen Initialisierungs-block. (static { }). Es ist nicht eine Methode, es ist eine Initialisierung. Es zum ersten mal ausgeführt wird, die Klasse selbst wird verwiesen.
Instanziierung ein Objekt ist zum Beispiel geschehen mit dem Schlüsselwort new, indem Sie Ihren Konstruktor aufrufen. Damals statischen Initialisierungs-block wird nicht ausgeführt.
InformationsquelleAutor Asi Mugrabi