Eine Referenz ist ein Wert, der ein Objekt angibt (das heißt, er kann verwendet werden, um ein Objekt zu erreichen). Man sagt, daß eine Referenz, die ein Objekt angibt, dieses Objekt referenziere. Wird eine Referenz und ein Objekt bildlich dargestellt, so wird die Referenz in der Regeln durch eine Linie mit dem von ihr referenzierten Objekt verbunden, welche eine Pfeilspitze hat, die zu dem Objekt zeigt.
In vielen Fällen steht die Referenz für das Objekt selber. Daher kann eine Referenz r beispielsweise nicht ausgegeben werden, denn in print( r ) wird das Objekt der Referenz r ausgegeben und nicht die Referenz r selber. Nur in einigen Fällen, wie bei der Zuweisung und der Parameterübergabe wird die Referenz selber kopiert und nicht das referenzierte Objekt.
Eine Referenz kann in einer Variablen enthalten sein, während Objekte nicht direkt in einer Variablen enthalten sein können. Wenn eine Variable eine Referenz auf eine Objekt enthält, so sagen wir, daß sie jenes Objekt referenziere.
Referenzen sind für die in der objektorientierten Programmierung zentrale Polymorphie nötig.
Referenzen erlauben es, sich auf ein Objekt zu beziehen. Ohne die Referenzen könnte man zwei Objekte, welche denselben Typ und Zustand haben nicht unterscheiden. Damit erlauben Referenzen es den in der objektorientierten Programmierung zentralen Objektgraph aufzubauen.
Referenzen benötigen meist weniger Speicherplatz als Objekte. Daher sparen sie Speicherplatz und beschleunigen die Verarbeitung.
Referenzen benötigen alle denselben Speicherplatz während Objekte unterschiedliche Speichergröße haben. Dadurch können Listen von Referenzen im Speicher effizienter gespeichert und schneller verarbeitet werden.
Wir haben bisher zur Vereinfachung oft von „Objekten“ gesprochen, wenn eigentlich die Bezeichnung „Referenz“ korrekt gewesen wäre.
Referenzausdrücke
Die folgenden Ausdrücke stehen nach dem bisher Gesagten für Objekte:
»"abc"«
»java.lang.System.out«
»new java.lang.Object()«
All diese Ausdrücke haben als Typ einen Referenztyp und werden daher auch Referenzausdrücke genannt.
Referenzen als Werte von Referenzausdrücken
Tatsächlich ist der genaue Wert eines Referenzausdrucks aber gar kein Objekt, sondern eine sogenannte Referenz.
Der Wert des Ausdrucks »"abc"« ist beispielsweise eine Referenz und kein Objekt.
Dies erklärt endlich auch, warum man überhaupt von Referenzausdrücken und Referenztypen spricht!
Referenzen als Stellvertreter von Objekten
Eine bestimmte Referenz steht für ein bestimmtes Objekt. Dieses Objekt nennen wir das Objekt der Referenz, und umgekehrt nennen wir die Referenz die Referenz des Objektes.
Referenzen stehen für Objekte.
Eine Referenz und ihr Objekt
Referenz ----------------------> Objekt
Man sagt auch, daß die Referenz ihr Objekt referenziere oder nennt sie eine Referenz auf ihr Objekt.
Eine Referenz erlaubt es, ihr Objekt zu erreichen (sie zeigt, wo ihr Objekt zu finden ist – daher kommt auch der Begriff „Zeiger“ für eine Referenz).
Dort wo ein Objekt erwartet wird, wird immer eine Referenz akzeptiert. Objekte selber lassen sich auch gar nicht direkter angeben als durch eine Referenz.
Der Wert eines Referenzausdrucks im Quelltext ist zunächst eine Referenz, die aber dann ihrerseits ein Objekt referenziert.
Beziehung zwischen Referenzausdrücken und Objekten
Quelltextmodell Laufzeitmodell
Referenzausdruck ----------------------> Referenz ----------------------> Objekt Bindung Referenzierung
Der Wert des Ausdrucks »"abc"« ist beispielsweise eine Referenz auf ein String-Objekt, das die Zeichenfolge »abc« darstellt.
Wir beschreiben im folgenden noch einige in dem obigen Diagramm verwendete Begriffe:
Das Quelltextmodell ist die Beschreibung des Aufbaus des Quelltextes einer Programmiersprache. „Referenzausdruck“ ist ein Begriff, der im Quelltextmodell vorkommt.
Das Laufzeitmodell ist die Beschreibung des Geschehens bei der Ausführung eines Programmes einer Programmiersprache. „Referenz“ und „Objekt“ sind Begriffe, die im Laufzeitmodell vorkommen.
Eine Bindung ist die Zuordnung eines Teils des Laufzeitmodells zu einem Teil des Quelltextmodell, beispielsweise die Zuordnung einer bestimmten Referenz zu einem bestimmten Namen.
Automatische Dereferenzierung
Das Ersetzen einer Referenz durch ihr Objekt bezeichnet man auch als Dereferenzierung. Die Dereferenzierung hebt die Referenzierung, also die Darstellung eines Objektes durch seine Referenz, wieder auf.
Referenzen werden in der Regel automatisch dereferenziert, also durch ihr Objekt ersetzt. Daher bemerkt man in der Regel gar nicht, daß es Referenzen überhaupt gibt, und die Situation erscheint wie in dem folgenden vereinfachten Diagramm.
Vereinfachte Beziehung zwischen Referenzausdrücken und Objekten
Quelltextmodell Laufzeitmodell
Referenzausdruck ----------------------> Objekt Bindung
Ausgabe von Referenzen
Referenzen lassen sich in Java nicht ausgeben, weil sie beim Versuch der Ausgabe ja immer durch ihr Objekt ersetzt werden, welches dann ausgegeben wird.
Daher gibt »java.lang.System.out.println( "abc" );« nicht die Referenz »"abc"« aus, sondern das von ihr referenzierte Objekt.
Referenzen und Zeiger
Man hört manchmal, daß es in Java keine Zeiger gäbe. Dies ist jedoch falsch, denn die offizielle Sprachnorm JLS8 erklärt im Abschnitt 4.3.1 selber, daß Referenzen Zeiger (“pointers”) sind. Wir können das Wort „Zeiger“ daher als einen Oberbegriff oder als ein Synonym für „Referenz“ verstehen.
JLS 8
4.3.1 Objects
An object is a class instance or an array.
The reference values (often just references) are pointers to these objects
Referenzen und Speicheradressen
Man kann sich unter einem Zeiger auch eine Speicheradresse vorstellen. Eine Referenz ist also die Speicheradresse eines Objektes.
Referenzen als Seriennummer eines Objekts
Früher wurde schon einmal gesagt, daß Objekte eine „versteckte Seriennummer“ enthalten. Dabei wurde an die Referenz eines Objektes gedacht, die man als eine solche versteckte Seriennummer ansehen kann.
Teilnehmerfragen *
Welchen Vorteil haben Referenzen? *
Es kommt natürlich darauf an, womit man sie vergleicht!
Verglichen mit der Möglichkeit, Objekte direkt in Variablen zu speichern, spart das Speichern von Referenzen Speicherplatz und beschleunigt das Kopieren bei der Zuweisung an Referenzvariablen und bei der Übergabe von Argumenten an Methoden, weil Objekte im Speicher oft größer sind als Referenzen.
Verglichen mit Programmiersprachen, in denen sowohl Objekte als auch Referenzen in Variablen gespeichert werden können, hat die ausschließliche Verwendung von Referenzen den Vorteil, daß die Programmiersprache einfacher zu erlernen und anzuwenden ist, wenn immer Referenzen verwendet werden, weil der Programmierer sonst immer in jedem einzelnen Fall entscheiden, beziehungsweise ermitteln, muß, wann eine Referenz in einer Variablen gespeichert wird und wann ein Objekt.
Außerdem werden Referenzen benötigt, um sich auf ein bestimmtes Objekt zu beziehen. Wenn beispielsweise ein Wert in einem Objekt gespeichert werden soll, so muß irgendwie angegeben werden, in welchem Objekt der Wert gespeichert werden soll. Ohne Referenzen könnten zwei verschiedene Objekte nicht immer ohne weiteres erreicht oder unterschieden werden (wie soll ein Objekt beispielsweise sich selbst referenzieren, wenn es keine Referenzen gibt?).
Schließlich setzt die objektorientierte Programmierung Referenzen voraus, da die für die objektorientierte Programmierung zentrale späte Bindung (Polymorphie) ohne Referenzen nur schwer werden kann. (Objekte haben unterschiedliche Speichergröße, während alle Referenzen gleich groß sind. Eine Variable für ein Objekt eines unbestimmten Typs ist also nicht direkt möglich, da dann nicht bekannt wäre, welche Größe diese Variable haben sollte.)
Seiteninformationen und Impressum | Mitteilungsformular | "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram. | Eine Verbindung zur Stefan-Ram-Startseite befindet
sich oben auf dieser Seite hinter dem Text "Stefan Ram".) |
Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten.
Diese Seite ist eine Veröffentlichung von Stefan Ram.
Schlüsselwörter zu dieser Seite/relevant keywords describing this page:
Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram720244 stefan_ram:720244
Referenzen in Java
Java Referenz erklärung;
Java Referenzen Erklärung
Java Referenz howto;
Java was ist eine Referenz;
erklärung Referenz in Java;
was ist Referenz in Java;
was bedeutet Referenz in Java erklärung;
was Referenz in Java bedeutet;
was ist eine Referenz in Java;
was ist eine Referenz Java;
was sind Referenzen in Java;
Referenzen von Java;
Java Referenzen erklärt;
was heisst Referenz in verbindung mit Java?
,
source, source code,sourcecode,
Programmier sprache java,
Java Programm Java Programmiersprache Java Sprache Java Programmierung
Programmieren in Java,
Die Programmiersprache Java
Javapgrammierung,
Java-Programmierung,
Java2, Java1.2, Java1.3, Java1.4, Java1.5,
Java 2, Java 1.2, Java 1.3, Java 1.4, Java 1.5, Java 1.6, Java 1.7, Java 1.8, Java 8, Java 1.9, Java 9, Tiger, Dolphin,
objektorientierte Programmierung,
Java sun,
,
Softwareentwicklung, Software-Entwicklung, Software Entwicklung,
Softwareprogrammierung, Software-Programmierung, Software Programmierung,
Softwareherstellung, Software-Herstellung, Software Herstellung,
Softwareerstellung, Software-Erstellung, Software Erstellung,
Softwareengineering, Software-Engineering, Software Engineering,
Softwareenginering, Software-Enginering, Software Enginering,
Softwaremethodik, Software-Methodik, Software Methodik,
Programmiermethodik, Programmier-Methodik, Programmier Methodik,
Softwaredidaktik, Software-Didaktik, Software Didaktik,
Methodik des Programmierens,
Didaktik des Programmierens,
Fachdidaktik des Programmierens, Fach-Didaktik des Programmierens,
Programmieren, Programmierung,
Computer Science, Informatik,
Informatik, Informationspädagogik, Informationspaedagogik,
Programmierer, programmieren, Quellcode, Quelltext, Quelle, Quellen,
Informatiker, Fachinformatiker, Entwickler, mit Stil, mit Stiel, mit Still,
,
Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz,
lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung,
Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training,
WBT,
Net Based Training,
NBT,
computer based training,
CBT,
virtual learning environment,
virtual university,
für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie,
Onlineacademie,
Onlineakademie,
Wissen,
Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat,
Referate,
Hausaufgabe,
Hausaufgaben, Tip,
Tipp.
Tipps und Tricks,
Tips und Tricks, Methode,
Methoden,
Methodik, Funktion,
Funktionsweise,
Aufbau,
Prinzip,
Grundlage,
Grundlagen, Internetschulung,
Unterlage,
Unterlagen, Struktur,
Frage,
Fragen,
Antwort,
Antworten,
Schulunterricht,
zum erlernen,
was ist das?,
wie?,
lerne,
Onlineausbildung,
Onlinelehrgang,
Onlinekurs,
Onlinebuch,
Webbuch,
Academy,
Fachhochschule,
FH,
TFH,
Hochschule,
Universität,
Universitaet,
Uni,
Schule,
Berufsschule,
Gymnasium,
Erste Schritte mit,
Dozent,
Dozenten,
Zusammenfassung,
Übersicht,
Term,
Fachwort,
Fachbegriff,
Fachbegriffe,
Grundbegriff,
Grundbegriffe,
Lektion,
Lektionen,
Bedienungsanleitung,
Bedienungsanleitungen,
Spezialist,
Spezialisten,
Coaching,
Coach,
Fachbuch,
technologie,
Unterschied zwischen,
Unterschiede zwischen,
lehren,
unterrichten,
für das Studium,
für Studenten,
für Studentinnen,
für Studierende,
für Schüler,
für Schülerinnen,
Wie kann ich,
Wie kann man,
Hilfe,
selber,
erstellen,
Erstellung,
Beginner,
Online-Seminar,
Online-Kurs,
Online-Schulung,
ich,
gebrauchsanweisung,
gebrauchsanleitung,
Bedienungsanweisung,
Einweisung,
Kurzinfo,
Internet-Kurs,
Internet-Kurse,
Online-Training,
Intensiv,
Intensivkurs,
Vortragsreihe,
Präsentation,
Grundzüge,
Mitschrift,
Mitschriften,
Verständnis,
verstehen,
anwenden,
Hintergrundwissen,
Hintergrund,
Hintergründe,
content,
Funktionsprinzip,
Schritt für Schritt;
E-Learning;
elearning;
online learning;
Fernlehre,
Fernlehrgang,
Fernlehrgänge,
Referent,
Referenten,
Fernkurs,
Fernkurse,
Fernstudium,
Fernschule,
Fernuniversität,
Fernlehrer,
Denken,
Qualifizierungsmaßnahme,
Qualifizierung,
Qualifizierungen,
Volkshochschulkurs,
Volkshochschulkurse,
Internet-Learning-Plattform,
Online-Learning-Plattform,
E-Learning-Plattform,
Internetlearning-Plattform,
Onlinelearning-Plattform,
Elearning-Plattform,
jetzt,
Kochbuch,
einfach erklärt,
Kenntnis,
Kenntniss,
Kenntnisse,
deutsche Hilfe,
lernen und verstehen;
blended learning;
courseware,
Profi,
Profis,
professionell,
professionelle,
professionelles,
profesionell,
profesionelle,
profesionelles,
professionel,
gekonnt,
für Könner,
Grundkurs,
Leistungskurs,
Aufbaukurs,
Lehrtext,
Lehrtexte,
Fachtext,
Fachtexte,
Ausarbeitung,
distance learning,
Online Seminar,
distance education,
Online Tutorium,
Online Tutorien,
technology-based learning,
Computer based learning,
CBL,
Internet Based learning,
IBL,
Web based learning,
WBL,
online-learning,
OL,
online-training,
OT,
CAI,
Computer Assisted Instruction,
CUU,
Computerunterstützter Unterricht,
Computer-unterstützter Unterricht,
Know how,
Grundkenntnis,
Grundkenntnisse,
Kompetenz,
Schulungsunterlagen,
Insiderwissen,
Rat,
Lehrerinnen und Lehrer,
ABC,
Überblick,
Arbeitsblatt,
Sekundarstufe,
Oberstufe,
Material,
Materialien,
Unterrichtsentwurf,
Unterrichtsentwürfe,
Lerntip,
Lerntips,
Lerntipp,
Lerntipps,
ebook,
schnell lernen,
Lerner,
Lernender,
Lernende
Erwachsenenbildung,
Frage und Antwort,
Selbststudium,
Selbstudium,
Umschulung,
,
kostenlos, kostenlose, kostenloses,
kosten los, kosten lose, kosten loses,
gratis,
free, frei, freie, freies,
privat, private, privates, homepage, home-page, home page,
website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite,
Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel,
online, on-line, on line,
download downloaden, down load, or,
deutsch, deutsche, deutsches, deutscher,
Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges,
german, germany, and,
uebersicht, Uerbersicht, uebersichten, Uebersichten,
Übersicht, übersicht, Übersichten, übersichten,
Uebersicht, uebersicht, Uebersichten, uebersichten,
Info, Infos zu, Information über, ueber, Informationen über,
Auskunft, Auskünfte, Auskuenfte,
Dienst, PbclevtugFgrsnaEnz,
Angebot, Angebote, Anbieter,
server, für, fuer, in, an, keyword, keywords, key word, keywords,
internet, internets, net, network, net work, networks, net works,
web, www, world wide web,
Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar,
computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon,
computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon,
2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023
was ist ein, was ist das, was sind, definiere, definition, define,
Inhalt, html, xhtml, free im netz, PDF
Text, digital, digitale, binär, binäre, elektronisch, elektronische,
fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines,
Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen;
,
Stefan Ram, Berlin, and, or, near, uni, online,
slrprd, slrprdqxx, slrprddoc, slrprd720244, slrprddef720244, PbclevtugFgrsnaEnz
Erklärung, Beschreibung, Info, Information, Hinweis,
Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten.
Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/java_referenzen