Referenzvariable zeigt nicht auf die Adresse des Objekts in Java?

4 Antworten

Java Referenztypen sind zunächst einmal eher mit Zeigern vergleichbar, als mit Referenzen, wie man sie aus anderen Sprachen wie C++ kennt (lies dazu hier).

In der Java Dokumentation steht dazu folgendes:

(...) A reference to an object is considered to have Java Virtual Machine type reference. Values of type reference can be thought of as pointers to objects. (...) Objects are always operated on, passed, and tested via values of type reference.

(Quelle)

Laut Spezifikation werden Typ von Klassen, Interfaces und Arrays als Referenz bezeichnet. Eine Java Referenz verweist auf das Objekt, welches im Heap angelegt wurde oder die speziellen Referenz null (lies wieder in obiger Quelle, Abschnitt 2.4).

Die konkrete Implementation einer Referenz, ist nun allerdings von der Implementation der JVM abhängig. Es könnte sich bspw. um ein handle handeln, ein compressed oop (ordinary object pointer; ein manged pointer für ein Objekt, genutzt in Java 7) oder tatsächlich eine Adresse. Die benannten Arten abstrakter Layer dienen der Vereinfachung des GC-Prozesses (Objekt-/Speicherverwaltung). Es ist in Java daher nicht so einfach möglich, an die Speicheradresse eines Objekts zu kommen. Es bedürfte der Unsafe API dazu.

Lies für weitere, präzisere Informationen hier:

Ich habe zwar mit Java nicht so viel gemacht, aber von C# weiß ich, dass die Adresse des Objekt nur indirekt in der Referenz enthalten ist. Sonst würde die Garbage-Collection nicht funktionieren.

Referenzen bei C/C++ sind dagegen Pointer mit der Zusicherung, nicht NULL sein zu können.

Woher ich das weiß:
Berufserfahrung
Referenzvariable zeigt nicht auf die Adresse

Natürlich nicht, denn dann wäre es ein Zeiger.

Mit Zeigern kommst Du in Java aber gar nicht in Berührung. Wenn dich das Prinzip hinter den Zeigern und die Zeigerarithmetik interessieren, solltest Du dich mit der C Programmierung beschäftigen.

Ein Konzept, dass ganz bewusst nicht in Java aufgenommen wurde.

Woher ich das weiß:
Studium / Ausbildung
4

Ich habe eigentlich das Zeiger Prinzip verstanden, nur dachte ich immer das es in Java auch der Fall wäre. Das war jetzt eine kleine Erleuchtung. 😬

0

In actionPerfomed(ActionEvent e){...} neue actionPerformed() Methode erstellen (Java)?

Hi,

ich habe in der Methode actionPerformed() ein neues JPanel-Objekt erstellt, welches ein JLabel-, ein JTextField- und ein JButtonobjekt enthält. Deshalb bräuchte ich eine neue actionPerformed Methode. Gibt es da einen Weg oder muss ich das ganze in einer neuen Klasse, die von JFrame erbt machen?

Viele Grüße,

SamanthaI

...zur Frage

Wie steige ich gut in die GUI-Programmierung unter Windows mit C++ ein?

Ich habe vor einigen Jahren als Schüler mit MS-DOS-bezogene IDE/Programmierwerkzeuge programmiert (Borland Turbo Pascal mit diesem Turbo Vision, wenn noch bekannt) und bin (hobbymäßig) inzwischen auf C++ umgestiegen. Ich benutze Code::Blocks (habe auch Dev und .NET).

Sofern man Anwendungen programmiert, komme ich an meiner GUI Windows nicht mehr vorbei, ich will nicht alles Console Application programmieren.

Das Buch von Jürgen Wolf, das ich gerade habe, empfiehlt QT. Ich hatte mich früher mal in MFC hingeschaut. Oder soll ich einfach mit WindowsForms unter .NET anfangen?

Allgemeine Frage: Wie gehe ich am Besten vor? Welche Bibliothek empfiehlt Ihr? Wisst Ihr ein gutes Buch, um in C++ für Windows Fuß zu fassen? Ich will es auch halbwegs verstehen und nicht nur Schritte auswendig lernen / nachschreiben.

...zur Frage

HEUR:Trojan.Script.Iframer gefunden, bei zugriff auf Website. Ist etwas passiert?

Also ich bin auf einen Link auf einer Website gegangen, dann kam eine Meldung, dass das Öffnen der Website nicht möglich wäre, wegen des Trojaners, ich hab dann die I-Net Verbindung getrennt und Firefox geschlossen. Jetzt steht in meinen Berichten:

Download eines Objekts. Es enthält ein trojanisches Programm.

Zeit: 28.03.2012 13:36:26 Schutzkomponente: Web-Anti-Virus Programm: Firefox Objekt: siehe in weiterem Kommentar Ergebnis: Gefunden: HEUR:Trojan.Script.Iframer

Muss ich jetzt den PC gleich zu einem Spezialisten bringen, dass er die Datei findet und löscht oder ist überhaupt was passiert? Vollständiger Systemscan läuft gerade...

In der Statistik (Diagramm wird mir auch als gefundene Trojaner angezeigt) Als ich über Google auf die Website bin war es dasselbe, hängt es vielleicht damit zusammen, dass es auf der Website technische Probleme gibt? Bei anderen, die das versucht haben war die Seite sicher. Hoffentlich liegt es nur daran, dass Kaspersky überreagiert...bitte um schnelle Hilfe.

Schonmal danke im Vorraus.

...zur Frage

HTML/CSS -> Bild auf Startseite an Höhe und Breite des Bildschirms anpassen, sodass die Startseite auf jedem Gerät gleich aussieht?

Hallo,

Ich möchte eine eigene Webseite gestalten welche sich automatisch auf die Größe und Breite des jeweiligen Besucher-Displays anpasst, also unabhängig von der Bildschirmgröße oder Auflösung ist. Die Startseite soll dabei immer den kompletten Bildschirm einnehmen, egal ob dieser schmal und hoch oder breit und flach ist.

Die Startseite enthält ein Bild welches im Hintergrund liegt. Beim scrollen soll direkt der neue Bereich beginnen. Beim öffnen der Seite auf einem normalen PC-Monitor soll das Bild komplett zu sehen sein, auf dem Handy Bildschirm nur ein Ausschnitt. Die Navigationsleiste und das Logo sollen dann in die Mitte rutschen, sodass die Struktur, soweit möglich, beibehalten wird.

Der Bereich unter der Startseite beinhaltet eine horizontale Liste, welche sich auf dem Handy Bildschirm vertikal ausrichten soll, sodass die einzelnen Elemente statt nebeneinander untereinander aufgelistet werden.

Mir ist klar das diese Frage einen viel zu großen Umfang hat, mir würde es aber schon viel helfen wenn mir jemand der sich damit auskennt Tipps geben könnte ob es mit CSS überhaupt realisierbar ist, oder ob man diese Funktionen mit Javascript oder ähnlichen Programmiersprachen umsetzen muss. Auch Tipps zu Büchern oder Internetseiten würden mir echt sehr helfen!

Vielen Dank im Voraus für eure Hilfe! 

...zur Frage

Maklerprovision bei hauskauf bei Privatkauf nach Erstkontakt Makler ohne Besichtigung?

Ein Makler inserierte ein Haus auf Immobilienscout und sandte mir nach Kontaktaufnahme ein Expose sowie die Adresse des Objekts zu. Zudem nahm er Rücksprache mit dem Verkäufer, um mir Details zur Wohnfläche der einzelnen Zimmer zukommen zu lassen. Name und Kontaktdaten des Verkäufers erhielt ich nicht. Ein Besichtigungstermin war bereits terminiert, ich sagte den Termin jedoch ab, da ich mich entschieden hatte einen Kauf dieses Objektes nicht weiterzuverfolgen.

6 Monate später ist das Objekt bei Immobilienscout erneut inseriert, jedoch als Privatverkauf vom Verkäufer selbst zu nun 20000 weniger als in dem Maklerinserat >6 Monate zuvor. Ich habe meine Meinung zu dem Objekt geändert und vereinbare nun mit dem Verkäufer einen Besichtigungstermin. 1) Hätte der Makler Anspruch auf die Maklerprovision, falls ich über den Privatverkauf das Objekt nun erwerben würde? 2) Ich gehe davon aus, dass Makler über den Verkauf an mich Kenntnis erlangen könnten. Ist das richtig? 3) Falls 1) mit ja zu beantworten wäre: Gibt es Möglichkeiten die Provision zu umgehen? z.B. ein Familienmitglied kauft und verkauft dann an mich weiter - das wäre dann aber mit doppelten Notargebühren verbunden?

Vielen Dank für hilfreiche Antworten!

...zur Frage

Wieviel Kibibyte enthält der Speicher und wieviele Adressleitungen?

Eine Aufgabe, die mir Kopfzerbrechen bereitet:

Ich habe einen Speicher mit einer Gesamtkapazität von 64 Mebibit und pro Adresse wird Wort mit 2 Byte adressiert:

a) Wieviel Kibibyte enthält der Speicher? b) Wieviel Adressleitungen?

...zur Frage

Was möchtest Du wissen?