3 Stimmen

Warum ist es von Vorteil, wenn eine Klassenvariable auf ein Objekt verweist, anstatt das Objekt selbst zu speichern?

Ich habe mich gefragt, was der Vorteil einer Klassenvariablen ist, die einen Verweis auf ein Objekt speichert, anstatt das Objekt direkt an seinem Speicherort zu speichern.

Hat es mit Speicherproblemen zu tun oder ist es ein Sicherheitsproblem.

Ich habe mich umgesehen, aber ich konnte diese Frage nicht finden.

Merci.

4voto

jmj Punkte 232204

Java speichert ein Objekt im Heap-Speicher, aber vom Code aus müssen wir auf dieses Objekt mit einem Handle zugreifen, und so ist die Referenz

Auch während GCing, wenn es keine aktive Referenz-Objekt ist nicht mehr benötigt und wird GC bereit sein

2voto

ManMohan Vyas Punkte 3914

Seine mehr über Speicher als beim Kopieren oder Übergabe von Objekt an Funktion müssen Sie nicht erstellen/kopieren ein Objekt, das Sie nur kopieren Referenz.

Zum Beispiel:

Class1 a = new Class1();
Class1 b = a;

Wenn Sie keine Referenzen speichern, müssen Sie in diesem Fall ein weiteres Objekt für b erstellen, was zu Duplizität führt.

Zweitens,

public void(Class1 obj){
  //Some operation to Object
}

Wenn Sie ein ganzes Objekt anstelle einer Referenz übergeben, benötigen Sie wiederum Speicher für das kopierte Objekt.

1voto

user207421 Punkte 297318

Ohne Referenzierung wäre es unmöglich, die meisten Datenstrukturen zu implementieren. Denken Sie an doppelt verknüpfte Listen oder einen Baum, in dem die Knoten Elternverknüpfungen enthalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X