Was ist eine Objektreferenzvariable? [Duplikat]

8

Was ist die Objektreferenzvariable in Java?

Enthält die Referenzvariable die Speicheradresse des Objekts?

Ich bin verwirrt. Bitte erklären Sie es.

    
user2301829 12.05.2013, 04:05
quelle

5 Antworten

17

Ich bin mir nicht sicher, ob ich die Eleganz habe, um das richtig zu beantworten, aber ...

  • Ein Objekt ist eine Instanz einer Klasse, sie wird irgendwo im Speicher
  • gespeichert
  • Eine Referenz beschreibt den Zeiger auf den Speicherort des Objekts.
  • Eine Variable ist ein Mittel, mit dem Sie auf diesen Speicherort innerhalb Ihrer Anwendung zugreifen können (ihr Wert ist "variable"). Während eine Variable nur auf eine einzelne Speicheradresse zeigen kann (wenn sie nicht null ist), kann sie sich während des gesamten Lebenszyklus der Anwendung ändern und auf andere Speicherorte zeigen (
  • )
MadProgrammer 12.05.2013, 04:14
quelle
8
  

Was ist die Objektreferenzvariable in Java?

Es ist einfach eine Variable, deren Typ ein Objekttyp ist; d. h. ein Typ, der entweder java.lang.Object oder ein Subtyp von java.lang.Object ist.

  

Enthält die Referenzvariable die Speicheradresse des Objekts?

Wahrscheinlich ja, aber möglicherweise nein.

Es hängt davon ab, wie die JVM Objektreferenzen darstellt. In den meisten JVMs wird der Objektverweis hinter den Kulissen mit einer Speicheradresse oder einem Zeiger dargestellt. Aber könnte auch als ein Index in ein Array ... oder etwas anderes dargestellt werden. (Tatsächlich habe ich mich mit einer experimentellen JVM herumgeschlagen, bei der eine Objektreferenz eigentlich ein Index in ein Array von Zeigern war.)

Der Punkt ist, dass Java-Objektreferenzen eine Abstraktion sind, die designed ist um die Repräsentations- / Implementierungsdetails von Ihnen zu verbergen. Die eigentliche Darstellung sollte Sie nicht interessieren ... da spielt es keine Rolle, ob Sie in reinem Java programmieren. Sie können die tatsächliche Speicheradresse in reinem Java nicht finden ... und das ist eine gute Sache. Die JVM (speziell der Garbage Collector) kann die tatsächliche Speicheradresse eines Objekts ändern, ohne Ihnen dies mitzuteilen. Wenn eine Anwendung Objektadressen erhalten und verwenden könnte, müsste sie damit umgehen und es ist ein grundsätzlich schwieriges Problem.

    
Stephen C 12.05.2013 04:23
quelle
1

Objektreferenzvariable ist genau wie Zeiger in c, aber nicht genau ein Zeiger.
Seine Abhängigkeit von JRE stellt eine JRE bereit, die genau wie ein Zeiger behandelt wird, und eine andere JRE, die als Zeiger auf den Zeiger behandelt wird.
so refernce variable just define a way to reach your object . Java ist eine plattformunabhängige Sprache, daher ist die Speicherverwaltung in verschiedenen Geräten unterschiedlich, so dass es schwierig ist, eine einzigartige Möglichkeit zu geben, das Objekt zu erreichen.

    
gifpif 12.05.2013 04:25
quelle
0

yes Objektreferenz ist die Variable, die den Speicherort des realen Objekts enthält

    
Sanjaya Liyanage 12.05.2013 04:13
quelle
0

In Java werden alle Objekte durch Referenzen für zB

bezeichnet

Object o = "foo";

Das obige Beispiel hat eine Referenz o auf das Objekt "foo".

    
Niklas Rosencrantz 12.05.2013 04:13
quelle

Tags und Links