Java

Aus Android Wiki
Wechseln zu: Navigation, Suche

Java war ursprünglich die einzige offizielle Programmiersprache für die Erstellung von 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.[1]

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 Java Development Kits (JDK) veröffentlicht. Java war ursprünglich für den Einsastz auf eingebetteten Systemen wie Set-Top-Boxen gedacht.[2] Sun wurde 2010 von der Firma Oracle Corporation aufgekauft, die dadurch auch in den Besitz von Java kam.[3] Nach dieser Übernahme kam es zu einem Rechtsstreit zwischen Google und Oracle wegen der Verwendung von Java in Android.

Technische Details[Bearbeiten | Quelltext bearbeiten]

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).[4] Für Android-Apps wird dieser Bytecode aber in speziellen Bytecode für die 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-Datei (Installations-Datei) in Form der Datei classes.dex enthalten. Bei der ab Android 4.4 KitKat "KitKat" zur Verfügung stehenden Laufzeitumgebung Android Runtime (ART) wird der Dalvik-Bytecode einmalig in Geräte-spezifischen Maschinencode übersetzt.

Java ist dem Sprachparadigma der objektorientierten Programmierung zuzuordnen.[1] 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.[5]

Verwandte Programmiersprachen[Bearbeiten | Quelltext bearbeiten]

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 (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.[6][7]

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.[8]

Trivia[Bearbeiten | Quelltext bearbeiten]

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.[9][1] 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.[3]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. 1,0 1,1 1,2 Volker Zota (2017-05-23). "Zahlen, bitte! Java, Hauptsache 0xCAFEBABE!". heise.de. Abgerufen am 2017-05-23. 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. 
  2. Michael Wiedeking (2017-09-29). "Läuft überall: Die Java Virtual Machine im Überblick". heise. Abgerufen am 2017-09-30. 
  3. 3,0 3,1 Christian Ullenboom. "Kapitel >1.1 Historischer Hintergrund< in Online-Buch >Java ist auch eine Insel. Das umfassende Handbuch<". rheinwerk-verlag.de (openbook). Abgerufen am 2017-05-19. 
  4. Margaret Rouse. "Java virtual machine (JVM)" (in English). theserverside.com. Abgerufen am 2017-05-20. 
  5. Eva Andreasson (2012-10-10). "JVM performance optimization, Part 3: Garbage collection" (in English). javaworld.com. Abgerufen am 2017-05-20. 
  6. Simon Olofsson (2014-08-01). "Ein zweiter Blick auf JVM-Programmiersprachen". heise Developer. heise.de. Abgerufen am 2016-04-16. 
  7. Moritz Förster (2017-10-09). "Vorgestellt: Sechs Sprachen für die Java Virtual Machine". heise.de. Abgerufen am 2017-10-09. 
  8. Joe Burns. "Java vs. JavaScript: Similarities and Differences" (in English). htmlgoodies.com. Abgerufen am 2017-05-19. 
  9. Dominic Lammert (2016-05-23). "Der Siegeszug der Programmiersprache Java: Von der Kaffeemaschine zur Raumfahrtmission". dice.com. Abgerufen am 2017-05-20.