Privacy Policy Cookie Policy Terms and Conditions Java (Technologie) - Wikipedia

Java (Technologie)

aus Wikipedia, der freien Enzyklopädie

Die Java-Technologie (englisch Java Technology) wurde von Sun Microsystems entwickelt.

Die Java-Technologie besteht aus den folgenden Komponenten:

Auf diesen Komponenten aufbauend gibt es folgende Technologien:

Inhaltsverzeichnis

[Bearbeiten] Geschichte Javas

Die Urversion von Java – auch Oak genannt – wurde in einem Zeitraum von 18 Monaten vom Frühjahr 1991 bis Sommer 1992 unter dem Projektnamen The Green Project von Patrick Naughton, Mike Sheridan, James Gosling und Bill Joy sowie neun weiteren Entwicklern im Auftrag des US-amerikanischen Computerherstellers Sun Microsystems entwickelt. Einer der Urväter und Hauptentwickler der Sprache war dabei James Gosling. Überbleibsel aus dem Green-Projekt ist der Duke von Joe Palrang, der zum bekannten Symbol bzw. Maskottchen geworden ist.

Das ursprüngliche Ziel bei der Entwicklung von Java war aber nicht lediglich die Entwicklung einer weiteren Programmiersprache, sondern die Entwicklung einer vollständigen Betriebssystemumgebung, inklusive virtueller CPU, für unterschiedlichste Einsatzzwecke. Das System sollte – der Legende nach – beispielsweise eine Kaffeemaschine steuern können.

Die Entwicklung fand in einem unauffälligen Bürogebäude in der Sand Hill Road in Menlo Park statt. Während dieser abgeschiedenen Entwicklungsphase kam es zu keinem Austausch mit Sun Microsystems. Im Sommer 1992 schließlich war die erste Oak-basierte Anwendung fertig gestellt – “an interactive, handheld home-entertainment device controller with an animated touchscreen user interface”. Diese Technologiedemonstration einer Touchscreen-basierten Gerätesteuerung mit animierter Benutzeroberfläche (GUI) hatte den Namen *7 (StarSeven).

Nach der Vorführung von StarSeven, mit dem zahlreiche Geräte interaktiv gesteuert werden konnten, wurden Unternehmen aus der Kabelfernseh-Branche aufmerksam und aus dem Hinterzimmer-Projekt „The Green Project“ entstand die Firma „FirstPerson“. Aus dem Büro wurde ein Bürohaus in der 100 Hamilton Avenue in Palo Alto.

Da die Belegschaft inzwischen von 13 Entwicklern auf 70 Mitarbeiter wuchs und die Zeit für interaktive digitale Mehrwertdienste im Bereich des Kabelfernsehens noch nicht reif war, suchte sich die junge Firma neue Betätigungsfelder. Nach einem dreitägigen Gruppentreffen von John Gage, James Gosling, Bill Joy, Patrick Naughton, Wayne Rosing und Eric Schmidt in „The Inn at Squaw Creek“ bei Lake Tahoe war schnell klar: Das Internet war das neue Betätigungsfeld.

Auf Basis des Urvaters aller grafischen Webbrowser, Mosaic, wurde ein um Java erweiterter Browser geschaffen – der „WebRunner“ (nach dem Film „Blade Runner“). Später wurde aus „WebRunner“ dann der offiziell bekannte HotJava-Browser.

Im März 1995 wurde die erste Alphaversion (1.0a2) des Java-Quellcodes für die Öffentlichkeit freigegeben und die Downloadzahlen explodierten. Wenig später, am 23. Mai 1995, wurde Java dann erstmals offiziell der Öffentlichkeit vorgestellt, in der „San Jose Mercury News“.

Der Durchbruch für Java kam mit der Integration von Java in den Browser Netscape – besiegelt durch einen Handschlag zwischen Eric Schmidt und George Paolini von Sun Microsystems und Marc Andreessen, dem Erfinder und Begründer von Netscape. Ort und Zeit: 4 Uhr morgens in einem Hotelzimmer des Sheraton-Palace-Hotels in der Nähe des Convention-Centers.

Der Name Oak hat seinen Ursprung in einer Eiche (engl. Oak), die vor dem Fenster des Entwicklers James Gosling stand. Dieser Name musste jedoch aufgrund rechtlicher Probleme (es gab bereits eine Software dieses Namens) verworfen werden. Man entschied sich für den Namen Java nach dem Namen einer starken Kaffee-Sorte, die speziell für Espresso Verwendung findet (Java-Bohne) und von den Entwicklern bevorzugt getrunken wurde.

[Bearbeiten] Versionen

[Bearbeiten] Version 1

Die 1996 erschienene Java-Version 1.0 enthielt noch eine überschaubare Menge von Standardpaketen, die in späteren Versionen schnell anwuchs:

  • java.lang: elementare Klassen, z. B. Object und System
  • java.io: Ein- und Ausgabe
  • java.util: z. B. Datenstrukturen und eine Datumsklasse
  • java.net: einfache TCP/IP-Klassen
  • java.awt: grundlegende Klassen für grafische Benutzeroberflächen
  • java.applet: eine Klasse für die bekannten Applets.

Obwohl diese neue Sprache primär zum Entwickeln von Applets gedacht war, bot sie schon in der ersten Version Möglichkeiten, die weit darüber hinaus reichten.

[Bearbeiten] Version 1.1

Eine Spracherweiterung wurde 1997 mit Java 1.1 vorgenommen, die Syntax wurde um das Konzept der inneren Klassen erweitert. Dies ging auch einher mit einem Umbau der Ereignisbehandlung hin zu einem Callback-System mit so genannten Listenern.

Außerdem wurde die Standardbibliothek erweitert:

In den Versionen ab 1.1.5 war bereits Swing verfügbar - jedoch zählte dieses Framework noch nicht zum offiziellen Java. Besonders problematisch war, dass Swing mit Erscheinen von 1.2 eine andere Paketstruktur aufwies und eine Portierung notwendig machte.

[Bearbeiten] Version 1.2

Java 2 (JDK 1.2) erschien im Jahr 1998. Mit Erscheinen dieser Version sprach Sun von Java 2, dementsprechend heißen die Pakete Java 2 Platform, Standard Edition (J2SE) und statt Java Development Kit (JDK) heißt es Java 2 Software Development Kit (J2SDK).

In dieser Version wurden Just-In-Time-Compiler eingeführt, womit die Ausführung von Java-Programmen deutlich beschleunigt werden konnte. (Für jedes Betriebssystem wird eine eigene Laufzeit-Bibliothek benötigt.) Die Programme sind aber weiterhin lediglich „vorkompiliert“. Die Geschwindigkeit vollständig kompilierter Programme wird nicht erreicht.

Erneut wurde die Standardbibliothek erweitert:

  • neue Schnittstellen und Implementierungen für Collections, also Datenstrukturen wie Listen, Mengen und Maps (Assoziativlisten)
  • die Oberflächen-Bibliothek Swing
  • neue Grafik-Funktionen (die Java 2D-API)
  • Drag and Drop-Funktionalität
  • verbesserte Audio-Funktionen
  • eine CORBA-Schnittstelle
  • schwache Referenzen – das sind solche Referenzen, die den Garbage-Collector nicht daran hindern, das referenzierte Objekt zu entfernen

Im Jahr 1998 wurde auch der Java Community Process (JCP) eingeführt. Diese Organisation steuert seitdem Änderungen an der Spezifikation von Java. Für vorgeschlagene Änderungen wird ein Java Specification Request (JSR) erstellt, der verschiedene Phasen durchläuft, bevor die Änderungen in Java Einzug halten.

[Bearbeiten] Version 1.3

2000 erschien J2SE 1.3 als nächster Evolutionsschritt, die API wurde erneut erweitert. Des weiteren wurde eine Engine mit Hotspot-Optimierung eingeführt. Das bedeutet, dass nicht mehr der gesamte Bytecode sofort kompiliert wird, sondern nur häufig benutzte Stellen (Hotspots). Codesegmente die sehr häufig ausgeführt werden, werden sogar weiter optimiert, so dass die häufig benutzten Stellen immer schneller ausgeführt werden.

[Bearbeiten] Version 1.4

Erst 2002 wurde mit Erscheinen von J2SE 1.4 wieder die Sprache selbst erweitert, was zuletzt bei Version 1.1 geschah. In dieser Version wurde eine Unterstützung für Assertions hinzugefügt. Auch die API wurde wieder erweitert, was insbesondere die Serverprogrammierung erleichtern soll. Die Sprache selbst wurde um Assertions erweitert.

Siehe auch: Servlet, Java Web Start, Java Server Pages, J2EE, J2ME, Javadoc, Blackdown

[Bearbeiten] Version 5.0

Java 5.0 erschien am 30. September 2004 als Nachfolger der Version 1.4. Die neueste Versionierungs-Policy von SUN besagt, dass eine Java Version nach außen 5.0, 6.0 etc. heißen soll (Produktnummer), wohingegen es parallel dazu eine Entwicklerversion gibt, die der bekannten, traditionellen Versions-History folgt (5.0-1.5, 6.0-1.6 etc.). Die „2“ z. B. aus J2EE wird somit ab Version 5.0 der Enterprise Edition verschwinden womit diese Version dann EE 5 heißt.

In der Version 5 gibt es umfangreiche Änderungen an der Sprache sowie weitere API-Erweiterungen:

Die zunächst für Java 5 („Tiger“-Release) geplanten Erweiterungen der Ein-/Ausgabefunktionen (JSR 203) wurden erst auf Java 6 („Mustang“-Release) und Anfang 2006 dann auf Java 7 ("Dolphin"-Release) verschoben.


[Bearbeiten] Version 6.0

Java 6.0 befindet sich zur Zeit in Entwicklung. Die Veröffentlichung ist für Dezember 2006 vorgesehen.

[Bearbeiten] Codenamen

  • Java 1.4.0 – Merlin
  • Java 1.4.1 – Hopper
  • Java 1.4.2 – Mantis
  • Java 5 – Tiger
  • JDK 6 – (früher bekannt als „Mustang“)
  • JDK 7 – (früher bekannt als „Dolphin“)

Am 15. August 2006 wurde über das Blog des Javaentwicklers Ray Gans (Senior Program Manager bei Sun Microsystems) bekannt, dass Sun von nun an auf die Projektnamen verzichtet und nur noch Versionsnummern verwendet.[1]

[Bearbeiten] Java unter der GPL 2

Am 13. November 2006 gab Sun bekannt, dass bis Ende des ersten Quartals 2007 die komplette Java-Technologie unter den Lizenzbestimmungen der GPL 2 veröffentlicht werden soll.[2][3]

[Bearbeiten] Kritik

Ein Problem für Entwickler freier Software bestand bis November 2006 darin, dass Java nicht frei (im Sinne der GPL) war. Probleme entstanden in diesem Rahmen vor allem dann, wenn beim Erstellen von Programmen „unfreie“ Klassen von Sun verwendet wurden, die freie Java-Compiler oder Java-Laufzeitumgebungen nicht verwenden können. Anwender von freien JVMs sind in diesen Fällen gezwungen, auf die JVM von Sun zurückzugreifen. In diesem Zusammenhang wurde auch von der „Java-Falle“ (Java Trap [4]) gesprochen.

Engagierte Entwickler haben darauf reagiert — und eine beachtliche Menge an freier Software zur Interpretation, Kompilation und Ausführung von Java-Programmen entwickelt, wie z. B. GNU Classpath, GNU Compiler for Java, Kaffe oder Harmony (von der Apache Software Foundation).

[Bearbeiten] Siehe auch

Javapedia

[Bearbeiten] Quellen

  1. Mustang and Dolphin... we'll miss you. Ray Gans's Blog, 15. August 2006 (Zugriff am 3. November 2006)
  2. http://www.sun.com/2006-1113/feature/index.jsp
  3. http://www.sun.com/software/opensource/java/faq.jsp
  4. Richard Stallman: Free But Shackled - The Java Trap. 12. April 2004
Andere Sprachen
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu