Bearbeiten von „Java

    Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden. Ein eigenes Benutzerkonto hat eine ganze Reihe von Vorteilen.

    Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

    Aktuelle Version Dein Text
    Zeile 1: Zeile 1:
    '''Java''' war ursprünglich die einzige offizielle Programmiersprache für die Erstellung von [[App#Native_App|nativen Android-Apps]]. Java wird aber nicht nur für die Programmierung von Android-Apps eingesetzt, sondern war schon Jahre vor der Einführung von [[Android]] (und ist es bis heute) eine beliebte Programmiersprache für die Entwicklung von Desktop- und Server-Anwendungen.<ref name="heise_mai_2017">{{Cite web | url =  https://heise.de/-3719039| title = Zahlen, bitte! Java, Hauptsache 0xCAFEBABE! | date = 2017-05-23 | accessdate = 2017-05-23 | publisher = heise.de | author = Volker Zota | quote = Auch über 20 Jahre nach der offiziellen Vorstellung zählt das objektorientierte Java zu den beliebtesten Programmiersprachen. Egal, ob wir das Programmiersprachen-Ranking von TIOBE, RedMonk oder PyPL anschauen, die nach der Java-Kaffeebohne (hierzulande als Arabica bezeichnet) benannte Sprache liegt weiterhin auf Platz 1 oder 2.}}</ref>
    '''Java''' war ursprünglich die einzige offizielle Programmiersprache für die Erstellung von [[App#Native_App|nativen Android-Apps]].


    Die Sprache wurde ursprünglich von der Firma ''Sun Microsystems'' unter Federführung von James Goslin entwickelt, die im Januar 1996 die Version 1.0 des [[JDK|Java Development Kits (JDK)]] veröffentlicht. ''Java'' war ursprünglich für den Einsastz auf eingebetteten Systemen wie Set-Top-Boxen gedacht.<ref>{{cite web | url = https://www.heise.de/-3847142 | title = Läuft überall: Die Java Virtual Machine im Überblick | accessdate = 2017-09-30 | date = 2017-09-29 | publisher = heise | author = Michael Wiedeking }}</ref> ''Sun'' wurde 2010 von der Firma ''Oracle Corporation'' aufgekauft, die dadurch auch in den Besitz von ''Java'' kam.<ref name="java_insel_buch">{{Cite web | url = http://openbook.rheinwerk-verlag.de/javainsel/javainsel_01_001.html | title = Kapitel >1.1 Historischer Hintergrund< in Online-Buch >Java ist auch eine Insel. Das umfassende Handbuch< | accessdate = 2017-05-19 | publisher = rheinwerk-verlag.de (openbook) | author = Christian Ullenboom}}</ref> Nach dieser Übernahme kam es zu einem [[Rechtsstreit zwischen Google und Oracle]] wegen der Verwendung von [[Java]] in [[Android]].
    Die Sprache wurde ursprünglich von der Firma ''Sun Microsystems'' unter Federführung von James Goslin entwickelt, die im Januar 1996 die Version 1.0 des [[JDK|Java Development Kits (JDK)]] veröffentlicht. ''Sun'' wurde 2010 von der Firma ''Oracle Corporation'' aufgekauft, die dadurch auch in den Besitz von ''Java'' kam..<ref name="java_insel_buch">{{Cite web | url = http://openbook.rheinwerk-verlag.de/javainsel/javainsel_01_001.html | title = Kapitel >1.1 Historischer Hintergrund< in Online-Buch >Java ist auch eine Insel. Das umfassende Handbuch< | accessdate = 2017-05-19 | publisher = rheinwerk-verlag.de (openbook) | author = Christian Ullenboom}}</ref> Nach dieser Übernahme kam es zu einem [[Rechtsstreit zwischen Google und Oracle]] wegen der Verwendung von [[Java]] in [[Android]].
    == Technische Details ==


    Der Java-Quellcode wird von einem Compiler in ''Bytecode'' für die '''Java Virtual Machine (JVM)''' übersetzt.
    Diese JVM kann man sich als simulierte CPU vorstellen, die den Java-Bytecode als Maschinencode ausführt.
    Hierdurch lässt sich der Java-Bytecode auf jedem Betriebssystem (z.B. Windows-Varianten, [[Linux]] und [[MacOS]]) und jeder CPU-Plattform, für die eine Implementierung der JVM verfügbar ist, ausführen (Plattform-Unabhängigkeit).<ref>{{Cite web | url = http://www.theserverside.com/definition/Java-virtual-machine-JVM  | title = Java virtual machine (JVM) | accessdate = 2017-05-20  | publisher = theserverside.com | author = Margaret Rouse | language = en }}</ref>
    Für Android-Apps wird dieser Bytecode aber in speziellen Bytecode für die [[Dalvik VM|Dalvik Virtual Machine (DVM)]] übersetzt, der für die Ausführung von den für Android-Geräte typischerweise verwendeten CPUs optimiert ist. Der Dalvid-Bytecode ist in der [[Apk|Apk-Datei (Installations-Datei)]] in Form der Datei <code>classes.dex</code> enthalten. Bei der ab [[Android]] {{Android|4.4}} zur Verfügung stehenden Laufzeitumgebung [[Android Runtime|Android Runtime (ART)]] wird der Dalvik-Bytecode einmalig in Geräte-spezifischen Maschinencode übersetzt.


    ''Java'' ist dem Sprachparadigma der objektorientierten Programmierung zuzuordnen.<ref name="heise_mai_2017" /> Objekte werden über Referenzen und nicht über Zeiger angesprochen.
    Weiter verfügt Java über eine automatische Speicherbereinigung (Garbage Collection), so dass durch die Erzeugung von Objekten dynamisch belegter Speicher nicht explizit vom Programmierer freigegeben werden muss.<ref>{{Cite web | url = http://www.javaworld.com/article/2078645/java-se/jvm-performance-optimization-part-3-garbage-collection.html | title =  JVM performance optimization, Part 3: Garbage collection | date = 2012-10-10 | accessdate = 2017-05-20 | publisher = javaworld.com | author = Eva Andreasson | language = en }}</ref>
    == Verwandte Programmiersprachen ==
    == Verwandte Programmiersprachen ==


    Mit der Programmiersprache [[Kotlin]] geschriebene Programme können ebenfalls in der JVM ausgeführt werden. Außerdem können ab Version 3.0 von [[Android_Studio|Android Studio]] (offizielle Entwicklungsumgebung für Android-Apps) neben ''Java'' auch mit ''Kotlin'' native Android-Apps entwickelt werden.
    Mit der Programmiersprache [[Kotlin]] geschriebene Programme können ebenfalls in der JVM ausgeführt werden. Außerdem können ab Version 3.0 von [[Android_Studio|Android Studio]] (offizielle Entwicklungsumgebung für Android-Apps) neben ''Java'' auch mit ''Kotlin'' native Android-Apps entwickelt werden.


    Neben ''Kotlin'' gibt es noch weitere Programmiersprachen, deren Programme in Bytecode für die Ausführung mit der JVM kompiliert werden können, z.B. Groovy, Scala, Clojure oder Ceylon.<ref>{{Cite web |url = http://heise.de/-2281060 | title = Ein zweiter Blick auf JVM-Programmiersprachen | accessdate = 2016-04-16 | date = 2014-08-01 | publisher = heise.de | department = heise Developer | author = Simon Olofsson}}</ref><ref>{{Cite web | url = https://heise.de/-3852542 | title = Vorgestellt: Sechs Sprachen für die Java Virtual Machine | date = 2017-10-09 | accessdate = 2017-10-09 | publisher = heise.de | author = Moritz Förster }}</ref>
    Neben ''Kotlin'' gibt es noch weitere Programmiersprachen, deren Programme in Bytecode für die Ausführung mit der JVM kompiliert werden können, z.B. Groovy, Scala, Clojure oder Ceylon.<ref>{{Cite web |url = http://heise.de/-2281060 | title = Ein zweiter Blick auf JVM-Programmiersprachen | accessdate = 2016-04-16 | date = 2014-08-01 | publisher = heise.de | department = heise Developer | author = Simon Olofsson}}</ref>


    Die von der Firma Netscape entwickelte Skriptsprache [[JavaScript]] ist trotz des Namensbestandteils "Java" technologisch unabhängig von ''Java''. Die ersten Versionen dieser Sprache wurden unter dem Namen ''LiveScript'' veröffentlicht.<ref>{{Cite web | url = http://www.htmlgoodies.com/beyond/javascript/article.php/3470971 | title = Java vs. JavaScript: Similarities and Differences | accessdate = 2017-05-19 | publisher = htmlgoodies.com | author = Joe Burns | language = en }}</ref>
    Die Skriptsprache ''JavaScript'' ist trotz des Namensbestandteils "Java" technologisch unabhängig von ''Java''.  


    == Trivia ==
    == Trivia ==


    Die Programmiersprache ist nach der indonesischen Hauptinsel ''Java'' benannt, was auch der Name für die von den bei ''Sun Microsystems'' beteiligten Entwicklern bevorzugte Kaffee-Sorte war.<ref>{{Cite web | url = http://de.dice.com/nachrichten/der-siegeszug-der-java-programmiersprache/ | title = Der Siegeszug der Programmiersprache Java: Von der Kaffeemaschine zur Raumfahrtmission | date = 2016-05-23 | accessdate = 2017-05-20 | publisher = dice.com | author = Dominic Lammert }}</ref><ref name="heise_mai_2017" /> Das Logo von ''Java'' ist deshalb eine dampfende Kaffee-Tasse. Ursprünglich sollte die Sprache ''Oak'' (engl.: Eiche) genannt werden, was aber aus Copyright-Gründen verworfen werden musste.<ref name="java_insel_buch" />
    Die Programmiersprache ist nach der indonesischen Hauptinsel ''Java'' benannt. Ursprünglich sollte die Sprache ''Oak'' (engl.: Eiche) genannt werden, was aber aus Copyright-Gründen verworfen werden musste.<ref name="java_insel_buch" />
     
    == Weblinks ==
     
    * [http://www.oracle.com/technetwork/java/index.html Einstiegs-Seite zu ''Java'' auf ''oracle.com'']
     
    * [http://openbook.rheinwerk-verlag.de/javainsel/ Volltext des Buchs "Java ist auch eine Insel. Das umfassende Handbuch" von Christian Ullenboom (Rheinwerk openbook)]
     
    * [https://docs.oracle.com/javase/tutorial/ Offizielle "The Java(TM) Tutorials" von Oracle]


    == Einzelnachweise ==
    == Einzelnachweise ==
    <references />
    <references />
    Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!
    Du gibst uns hiermit deine Zusage, dass du den Text selbst verfasst hast, dass der Text Allgemeingut (public domain) ist, oder dass der Urheber seine Zustimmung gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin. Bitte beachte, dass alle Android Wiki-Beiträge automatisch unter der „Creative Commons Attribution/Share-Alike Lizenz 3.0“ stehen. Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann klicke nicht auf „Seite speichern“.

    Um das Wiki vor automatisiertem Bearbeitungsspam zu schützen, bitten wir dich, das folgende CAPTCHA zu lösen:

    Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)

    In dieser Seite verwendete DroidWiki Data-Objekte