Bearbeiten von „Java“
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 | '''Java''' war ursprünglich die einzige offizielle Programmiersprache für die Erstellung von [[App#Native_App|nativen Android-Apps]]. Neben dem Einsatz von Java als Programmiersprache für Android Apps, ist es zudem eine weit verbreitete Sprache auf vielen anderen Geräten, die Java unterstützen, bspw. Computer. | ||
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 == | == Technische Details == | ||
Der Java-Quellcode wird von einem Compiler in ''Bytecode'' für die '''Java Virtual Machine (JVM)''' übersetzt. | Der Java-Quellcode wird von einem Compiler in sog. '''Bytecode''' für die sog. '''Java Virtual Machine (JVM)''' übersetzt. | ||
Diese JVM kann man sich als simulierte CPU vorstellen, die den Java-Bytecode als Maschinencode ausführt. | 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 | 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 | 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. Bei der ab [[Android]] {{Android|4.4}} zur Verfügung stehenden Laufzeitumgebung [[Android Runtime|Android Runtime (ART)]] wird der Bytecode für die DVM einmalig in Geräte-spezifischen Maschinencode übersetzt. | ||
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> | 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 | 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 | 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> | ||
== Trivia == | == Trivia == | ||
Die Programmiersprache ist nach der indonesischen Hauptinsel ''Java'' benannt | 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" /> | ||
== Einzelnachweise == | == Einzelnachweise == | ||
<references /> | <references /> |