Java (Softwareplattform)

Java (Softwareplattform)
The Java technology logo
Das Java Technology Logo
Originalautor (en) James Gosling, Sun Microsystems
Entwickler (en) Oracle Corporation
Erstveröffentlichung 23. Januar 1996; Vor 26 Jahren[1][2]
Stabile Version 18.0.1.1 (2. Mai 2022; Vor 2 Monaten) [±]

17.0.3.1 Lts (2. Mai 2022; Vor 2 Monaten) [±]
11.0.15.1 LTS (2. Mai 2022; Vor 2 Monaten[3]) [±]

8U333 LTS (2. Mai 2022; Vor 2 Monaten[4]) [±]
Geschrieben in Java, C ++, C, Montagesprache[5]
Betriebssystem Microsoft Windows, Linux, Mac OS,[6] und für alte Versionen: Solaris
Plattform x64, ARMV8und für alte Versionen: ARMV7, IA-32, Sparc (bis zu Java 14) (Java 8 beinhaltet 32-Bit Unterstützung für Fenster- Obwohl Oracle für den kommerziellen Gebrauch nicht mehr frei unterstützt wird)[6]
Verfügbar in Englisch, Chinesisch, Französisch, Deutsch, Italienisch, Japanisch, Koreanisch, Portugiesisch, Spanisch, Schwedisch[7]
Typ Softwareplattform
Lizenz Dual-Lizenz: GNU Allgemeine öffentliche Lizenz Version 2 mit Ausnahme von Klassenpfad,[8] und ein proprietär Lizenz.[9]
Webseite Java.com
Ein Java-betriebenes Programm

Java ist ein Satz von Computer Software und Spezifikationen von entwickelt von James Gosling bei Sun Microsystems, was später von der erworben wurde Oracle Corporation, das ein System zur Entwicklung liefert Anwendungssoftware und bereitet es in a plattformübergreifend Computerumgebung. Java wird in einer Vielzahl von verwendet Computerplattformen aus Eingebettete Geräte und Mobiltelefone zu Enterprise -Server und Supercomputer. Java -Applets, die seltener als eigenständige Java -Anwendungen sind, wurden üblicherweise in sicherem durchgeführt, Sandbox Umgebungen, um viele Merkmale native Anwendungen zu liefern, indem sie in eingebettet werden Html Seiten.

Schreiben in der Java -Programmiersprache ist die Hauptmethode, um Code zu produzieren, der als bereitgestellt wird wie Byte -Code in einem Java virtuelle Maschine (JVM); Byte -Code Compiler sind auch für andere Sprachen erhältlich, einschließlich Ada, JavaScript, Python, und Rubin. Darüber hinaus wurden mehrere Sprachen so konzipiert, dass sie nativ auf der JVM läuft, einschließlich Clojure, Groovig, und Scala. Java -Syntax leiht sich stark von C und C ++, aber objektorientierte Merkmale sind modelliert Smalltalk und Ziel c.[10] Java meidet bestimmte Konstrukte auf niedriger Ebene wie z. Zeiger und hat ein sehr einfaches Speichermodell, bei dem Objekte sind auf dem Haufen zugewiesen (Während einige Implementierungen, z. B. alle derzeit von Oracle unterstützt, können verwendet werden Fluchtanalyse Optimierung, um dem zuzuweisen Stapel stattdessen) und alle Variablen von Objekttypen sind Verweise. Die Speicherverwaltung wird durch integrierte Automatik behandelt Müllsammlung durchgeführt von der JVM.

Am 13. November 2006 machte Sun Microsystems den größten Teil seiner Implementierung von Java unter dem verfügbar GNU Allgemeine öffentliche Lizenz (GPL).[11][12]

Die neueste Version ist Java 18, veröffentlicht im März 2022 während Java 17, die neueste Langzeitunterstützung (LTS) wurde im September 2021 veröffentlicht. Als Open -Source -Plattform verfügt Java über viele Händler, darunter Amazon, IBM, Azul Systems und Adoptopenjdk. Zu den Verteilungen gehören Amazon Corretto, Zulu, Adoptopenjdk und Liberica. In Bezug auf Oracle verteilt es Java 8 und stellt auch z. Java 11, beide unterstützten derzeit auch LTS -Versionen. Oracle (und andere) "empfehlen Ihnen dringend, ältere Versionen von Java zu deinstallieren" als Java 8.[13] wegen schwerwiegender Risiken aufgrund ungelöster Sicherheitsprobleme.[14][15][16] Da Java 9 (und 10, 12, 13, 14, 15 und 16) nicht mehr unterstützt wird, rät Oracle seinen Benutzern, "sofort zu einer unterstützten Version zu wechseln". Oracle veröffentlichte das letzte öffentliche Update für den kommerziellen Gebrauch für die Erbe Java 8 LTS im Januar 2019 und wird Java 8 weiterhin mit öffentlichen Updates für den persönlichen Gebrauch auf unbestimmte Zeit unterstützen. Oracle erweiterte die Unterstützung für Java 6 im Dezember 2018.[17]

Plattform

Die Java -Plattform ist eine Reihe von Programmen, die die Entwicklung und Ausführung von Programmen erleichtern Java Programmiersprache. Eine Java -Plattform enthält eine Ausführungsmaschine (genannt a virtuelle Maschine), ein Compiler und ein Satz von Bibliotheken; Es kann auch zusätzliche geben Server und alternative Bibliotheken, die von den Anforderungen abhängen. Java -Plattformen wurden für eine Vielzahl von Hardware- und Betriebssystemen implementiert, um Java -Programme zu ermöglichen identisch laufen auf allen. Verschiedene Plattformen richten sich an verschiedene Geräteklassen und Anwendungsdomänen:

  • Java -Karte: Eine Technologie, die kleine Java-basierte Anwendungen ermöglicht (AnwendungenApplets) sicher aufgetragen werden Smartcards und ähnliche Geräte mit kleinem Memory.
  • Java mich (MICRO Edition): Gibt mehrere verschiedene Bibliothekssätze (als Profile bezeichnet) für Geräte mit begrenzter Speicher-, Anzeige- und Leistungskapazitäten an. Es wird häufig verwendet, um Anwendungen für mobile Geräte, PDAs, TV zu entwickeln Set-Top-Boxenund Drucker.
  • Java se (Standardausgabe): Für die allgemeine Verwendung auf Desktop-PCs, Servern und ähnlichen Geräten.
  • Jakarta ee (Enterprise Edition): Java SE plus verschiedene APIs, die nützlich sind für Multi-Tier Kundenserver geschäftliche Anwendungen.

Die Java -Plattform besteht aus mehreren Programmen, die jeweils einen Teil ihrer allgemeinen Fähigkeiten bieten. Zum Beispiel wird der Java -Compiler, der den Java -Quellcode in Java -Bytecode (eine Zwischensprache für die JVM) umwandelt, als Teil des Java Entwickler-Kit (JDK). Das Java -Laufzeitumgebung (JRE), ergänzt den JVM mit a Just-in-Time (JIT) CompilerKonvertiert intermediate Bytecode im laufenden Fliegen in nativen Maschinencode. Die Java -Plattform umfasst auch eine umfangreiche Reihe von Bibliotheken.

Die wesentlichen Komponenten in der Plattform sind der Java -Sprachkompiler, die Bibliotheken und die Laufzeitumgebung, in der Java Intermediate -Bytecode gemäß den in der Spezifikation Virtual Machine festgelegten Regeln ausgeführt wird.

Java virtuelle Maschine

Das Herz der Java -Plattform ist die "virtuelle Maschine", die ausgeführt wird Java -Bytecode Programme. Dieser Bytecode ist gleich, unabhängig davon, unter welcher Hardware- oder des Betriebssystems das Programm ausgeführt wird. Neue Versionen wie für Java 10 (und früher) haben jedoch kleine Änderungen vorgenommen, was bedeutet, dass der Bytecode nur im Allgemeinen ist vorwärts kompatibel. Es gibt einen JIT (gerade rechtzeitig) Compiler innerhalb des Java virtuelle Maschine, oder JVM. Der JIT-Compiler übersetzt den Java-Bytecode zur Laufzeit in native Prozessoranweisungen und zwischengespeichert den nativen Code im Speicher während der Ausführung.

Die Verwendung von Bytecode als Zwischensprache ermöglicht es Java -Programmen, auf denen eine Plattform mit einer virtuellen Maschine verfügbar ist. Die Verwendung eines JIT-Compilers bedeutet, dass Java-Anwendungen nach einer kurzen Verzögerung während des Ladens und sobald sie sich "aufgewärmt" haben, indem sie alle oder meistens JIT-kompiliert sind, tendenziell so schnell wie native Programme rennen.[18][19][20] Seit Jre Version 1.2 enthält die JVM -Implementierung von Sun a Just-in-Time-Compiler anstelle eines Dolmetschers.

Obwohl Java -Programme sind plattformübergreifend oder plattformunabhängig, der Code der Java Virtual Machines (JVM), die diese Programme ausführen, ist nicht. Jede unterstützte Betriebsplattform hat eine eigene JVM.

Klassenbibliotheken

In den meisten modernen Betriebssysteme (OSS) Es wird ein großer Teil von wiederverwendbarem Code bereitgestellt, um den Auftrag des Programmierers zu vereinfachen. Dieser Code wird normalerweise als Satz von bereitgestellt Dynamisch ladbare Bibliotheken Diese Anwendungen können zur Laufzeit anrufen. Da die Java-Plattform nicht von einem bestimmten Betriebssystem abhängt, können sich Anwendungen nicht auf die bereits bestehenden Betriebssystembibliotheken verlassen. Stattdessen bietet die Java -Plattform einen umfassenden Satz ihrer eigenen Standardklassenbibliotheken, die viele der gleichen wiederverwendbaren Funktionen enthalten, die häufig in modernen Betriebssystemen zu finden sind. Der größte Teil der Systembibliothek ist auch in Java geschrieben. Zum Beispiel die Schwingen Die Bibliothek malt die Benutzeroberfläche und behandelt die Ereignisse selbst und beseitigt viele subtile Unterschiede zwischen den Umgang mit Komponenten mit unterschiedlichen Plattformen.

Die Bibliotheken der Java -Klasse dienen drei Zwecken innerhalb der Java -Plattform. Erstens bieten die Java-Bibliotheken wie andere Standardcode-Bibliotheken dem Programmierer eine bekannte Reihe von Funktionen, um gemeinsame Aufgaben auszuführen, z. B. die Wartung von Elementen oder die Ausführung komplexer String-Parsen. Zweitens bieten die Klassenbibliotheken eine abstrakte Schnittstelle für Aufgaben, die normalerweise stark von der Hardware und dem Betriebssystem abhängt. Aufgaben wie Netzwerkzugriff und Dateizugriff sind häufig stark mit den charakteristischen Implementierungen jeder Plattform verflochten. Das Java.net und Java.io Bibliotheken implementieren eine Abstraktionsschicht im nativen Betriebssystemcode und geben dann eine Standardschnittstelle für die Java -Anwendungen zur Durchführung dieser Aufgaben an. Wenn eine zugrunde liegende Plattform nicht alle Funktionen unterstützt, die eine Java -Anwendung erwartet, arbeiten die Klassenbibliotheken daran, die fehlenden Komponenten ordnungsgemäß zu behandeln, entweder durch Emulation, um einen Ersatz zu liefern, oder zumindest durch eine konsistente Möglichkeit, die Anwesenheit zu überprüfen eines bestimmten Merkmals.

Sprachen

Das Wort "Java" allein bezieht sich normalerweise auf die Java -Programmiersprache, die für die Verwendung mit der Java -Plattform konzipiert wurde. Die Programmiersprachen liegen normalerweise außerhalb des Rahmens der Phrase "Plattform", obwohl die Java -Programmiersprache vor Java 7 als zentraler Bestandteil der Java -Plattform gelistet wurde. Die Sprache und Laufzeit wurden daher allgemein als einzelne Einheit angesehen. Die Java 7 -Spezifikation wurde jedoch bemüht, die Java -Sprache und die Java -virtuelle Maschine als separate Einheiten klarer zu behandeln, damit sie nicht mehr als eine Einheit betrachtet werden.[21]

Dritte haben viele produziert Compiler oder Dolmetscher Das zielt auf das JVM ab. Einige davon sind für vorhandene Sprachen gedacht, während andere für Erweiterungen der Java -Sprache dienen. Diese beinhalten:

  • Beanshell - Eine leichte Skriptsprache für Java[22] (siehe auch Jshell)
  • Ceylon -eine objektorientierte, stark statisch getippte Programmiersprache mit Schwerpunkt auf Unveränderlichkeit
  • Clojure - eine moderne, dynamisch, und funktional Dialekt des Lisp -Programmiersprache Auf der Java -Plattform
  • Gosu -Eine allgemeine Java Virtual Machine-basierte Programmiersprache, die unter der Apache-Lizenz 2.0 veröffentlicht wurde
  • Groovig -Eine vollständig java interoperable, java-syntax-kompatible, statische und dynamische Sprache mit Merkmalen von Python, Ruby, Perl und SmallTalk
  • Jruby - EIN Rubin Dolmetscher
  • Jython - EIN Python Dolmetscher
  • Kotlin - eine industrielle Programmiersprache für JVM mit voll Java Interoperabilität
  • Nashorn - EIN JavaScript Dolmetscher
  • Scala -Eine Multi-Paradigm-Programmiersprache mit nicht-Java-kompatibler Syntax als "bessere Java"

Ähnliche Plattformen

Der Erfolg von Java und seiner Schreiben Sie einmal, rennen Sie irgendwohin Das Konzept hat zu anderen ähnlichen Bemühungen geführt, insbesondere zu den .NET Framework, erscheinen seit 2002, das viele der erfolgreichen Aspekte von Java enthält. .NET wurde von Grund auf entwickelt, um mehrere Programmiersprachen zu unterstützen, während die Java-Plattform ursprünglich nur die Java-Sprache unterstützt, obwohl seitdem viele andere Sprachen für JVM gemacht wurden. Wie Java kompilieren .NET -Sprachen mit dem Byte -Code und werden von der gemeinsamen Sprachlaufzeit (CLR) ausgeführt, die dem JVM in Zweck ist. Wie bei der JVM bietet die CLR Speicherverwaltung durch automatische Müllsammlung und ermöglicht den .NET -Byte -Code auf mehreren Betriebssystemen.

.NET enthielt eine Java-ähnliche Sprache, die erstmals benannt wurde J ++, dann gerufen Visuell j# Das war mit der Java -Spezifikation unvereinbar. Es wurde 2007 eingestellt und die Unterstützung dafür endete 2015.

Java Entwickler-Kit

Das Java Entwickler-Kit (JDK) ist ein Sonne Produkt für Java -Entwickler. Seit der Einführung von Java ist es mit Abstand der am häufigsten verwendete Java Softwareentwicklungskit (SDK). Es enthält einen Java -Compiler, eine vollständige Kopie der Java -Laufzeitumgebung (JRE) und viele andere wichtige Entwicklungsinstrumente.

Java -Laufzeitumgebung

Die von Oracle veröffentlichte Java Runtime Environment (JRE) ist eine frei verfügbare Softwareverteilung, die einen eigenständigen JVM (Hotspot) enthält, der Java Standardbibliothek (Java -Klassenbibliothek), ein Konfigurationstool, und-bis zum Absetzen in JDK 9-ein Browser-Plug-In. Es ist die häufigste Java -Umgebung, auf die installiert wird persönliche Computer im Laptop und Desktop Formfaktor. Mobiltelefone einschließlich Feature -Telefone und früh Smartphones Dieses Schiff mit einem JVM umfasst am wahrscheinlichsten ein JVM, das Anwendungen ausführen soll Micro Edition der Java -Plattform. Inzwischen die meisten modernen Smartphones, Tablet -Computer, und andere Handheld -PCs Diese Lauf -Java -Apps tun dies am wahrscheinlichsten durch Unterstützung der Android -Betriebssystem, einschließlich einer virtuellen Open -Source -Maschine, die mit der JVM -Spezifikation nicht kompatibel ist. (Stattdessen, Google's Android Development Tools nehmen Java -Programme als Eingabe und Ausgabe an Dalvik Bytecode, das native Eingangsformat für die virtuelle Maschine auf Android -Geräten ist.)

Leistung

Die JVM -Spezifikation gibt den Implementierern in Bezug auf die Implementierungsdetails viel Spielraum. Seit Java 1.3 enthält Jre von Oracle einen JVM namens Hotspot. Es wurde als Hochleistungs-JVM entwickelt.

Zur Beschleunigung der Codeausführung stützt sich Hotspot auf die Just-in-Time-Zusammenstellung. Um die Objektzuweisung und die Müllsammlung zu beschleunigen, verwendet Hotspot Generationenhaufen.

Generationshaufen

Das Java Virtual Machine Heap ist der Speicherbereich, der vom JVM für verwendet wird Dynamische Speicherzuweisung.[23]

In Hotspot ist der Haufen in unterteilt in Generationen:

  • Das junge Generation speichert kurzlebig Objekte das werden erstellt und sofort Müll gesammelt.
  • Objekte, die länger bestehen bleiben Alte Generation (auch als die genannt Amtszeit Generation). Dieses Gedächtnis ist in (zwei) Überlebenderäume unterteilt, in denen die Objekte, die die erste und nächste Müllsammlungen überlebt haben, gespeichert werden.

Das Permanente Generation (oder Permgen) wurde vor Java 8 für Klassendefinitionen und zugehörige Metadaten verwendet. Die permanente Generation war nicht Teil des Haufens.[24][25] Das Permanente Generation wurde aus Java 8 entfernt.[26]

Ursprünglich gab es keine dauerhafte Generation, und Objekte und Klassen wurden zusammen im selben Bereich aufbewahrt. Da die Klassenentladung jedoch viel seltener auftritt als Objekte gesammelt werden, ermöglichte sich bewegende Klassenstrukturen in einen bestimmten Bereich erhebliche Leistungsverbesserungen.[24]

Sicherheit

Oracas JRE ist auf einer großen Anzahl von Computern installiert. Endbenutzer mit einer veralteten Version von JRE sind daher für viele bekannte Angriffe anfällig. Dies führte zu der weit verbreiteten Überzeugung, dass Java von Natur aus unsicher ist.[27] Seit Java 1.7 enthält das JRE für Windows von Oracle automatische Aktualisierungsfunktionen.

Vor dem Absetzen des Java-Browser-Plug-Ins kann jede Webseite möglicherweise ein Java-Applet ausgeführt werden, das eine leicht zugängliche Bereitstellung bietet Angriffsfläche zu böswilligen Websites. 2013 berichtete Kaspersky Labs, dass das Java-Plug-In die Methode der Wahl für Computerkriminelle war. Java -Exploits sind in vielen Exploit -Packs enthalten, die Hacker auf gehackten Websites bereitstellen.[28] Java -Applets wurden in Java 11 entfernt und am 25. September 2018 veröffentlicht.

Geschichte

James Gosling

Die Java -Plattform und die Sprache begannen als internes Projekt bei Sun Microsystems im Dezember 1990, die eine Alternative zum C ++/ bildetC Programmiersprachen. Techniker Patrick Naughton hatte sich zunehmend frustriert über den Zustand von Suns C ++ und C Anwendungsprogrammierschnittstellen (APIs) und Werkzeuge sowie mit der Art und Weise wie die Nachrichten Das Projekt wurde von der Organisation behandelt. Naughton informiert Scott McNealy über seinen Plan, Sonne zu verlassen und sich zu bewegen Nächste; McNealy bat ihn, so zu tun, als sei er Gott und schickte ihm eine E-Mail, in der erklärt wird, wie man die Firma repariert. Naughton stellte sich die Schaffung eines kleinen Teams vor, das ohne die Bürokratie, die andere Sonnenprojekte zum Blockieren hatte, autonom arbeiten. McNealy leitete die Botschaft an andere wichtige Personen bei Sun und die weiter, die Stealth -Projekt gestartet.[29]

Das Stealth -Projekt wurde bald in die umbenannt Grünes Projekt, mit James Gosling und Mike Sheridan zu Naughton. Zusammen mit anderen Ingenieuren begannen sie in einem kleinen Büro an der Arbeit Sand Hill Road in Menlo Park, Kalifornien. Sie zielten darauf ab, neue Technologie für die Programmierung intelligenter Geräte der nächsten Generation zu entwickeln, die Sun erwartete, um große neue Möglichkeiten zu bieten.[30]

Das Team hat ursprünglich C ++ überlegt, es jedoch aus mehreren Gründen abgelehnt. Weil sie eine entwickelten Eingebettetes System Mit begrenzten Ressourcen entschieden sie, dass C ++ zu viel Speicher benötigte und dass seine Komplexität zu Entwicklerfehlern führte. Der Mangel an Sprache an Müllsammlung bedeutete, dass Programmierer das Systemspeicher manuell verwalten mussten, eine herausfordernde und fehleranfällige Aufgabe. Das Team machte sich auch Sorgen über den Mangel an tragbaren Sicherheitseinrichtungen durch die C ++ - Sprache. verteilte Programmierung, und Fäden. Schließlich wollten sie eine Plattform, die einfach auf alle Arten von Geräten portiert.

Bill Joy hatte sich eine neue Sprache vorgestellt, die kombiniert wurde Mesa und C. in einem Papier genannt Des Weiterener schlug der Sonne vor, dass seine Ingenieure eine produzieren sollten objektorientierter Umgebung basierend auf C ++. Anfänglich versuchte Gosling, C ++ zu ändern und zu erweitern (eine vorgeschlagene Entwicklung, die er als "C ++ ++ -" bezeichnete), gab das jedoch bald auf, um eine neue Sprache zu erstellen, die er nannte Eichenach dem Baum, der direkt vor seinem Büro stand.[31]

Bis zum Sommer 1992 konnte das Team Teile der neuen Plattform demonstrieren, einschließlich des Grüns OS, die Eichensprache, die Bibliotheken und die Hardware. Ihre erste Demonstration am 3. September 1992 konzentrierte sich auf den Bau a persönlicher digitaler Assistent (PDA) Gerät benannt Star7[1] Das hatte eine grafische Oberfläche und einen intelligenten Agenten namens "Duke", um den Benutzer zu unterstützen. Im November dieses Jahres wurde das Green -Projekt ausgeschaltet, um zu werden Erste Person, eine häufige Tochter von Sun Microsystems, und das Team zog auf Palo Alto, Kalifornien.[32] Das Firstperson -Team hatte Interesse daran, hoch interaktive Geräte aufzubauen, und wann Time Warner ausgegeben a Antrag auf Vorschlag (RFP) für a Set-Top-BoxErstperson änderte ihr Ziel und antwortete mit einem Vorschlag für eine Set-Top-Box-Plattform. Allerdings die Kabel Die Industrie war der Ansicht, dass ihre Plattform dem Benutzer zu viel Kontrolle gab, also verlor Firstperson ihr Angebot an SGI. Ein zusätzlicher Deal mit Die 3DO -Firma Für eine Set-Top-Box konnte ebenfalls nicht eintreten. Das Unternehmen war nicht in der Lage, Interesse innerhalb der Fernsehbranche zu wecken, und wurde wieder in die Sonne gerollt.

Java trifft das Web

John Gage

Im Juni und Juli 1994 - nach drei Tagen des Brainstormings mit John Gage (Der Direktor für Wissenschaft für Sun), Gosling, Freude, Naughton, Wayne Rosing, und Eric Schmidt-Das Team zielte die Plattform für die erneut Weltweites Netz. Sie spürten das mit dem Aufkommen der grafischen Internetbrowser wie Mosaik Das Internet könnte sich zu dem gleichen hoch interaktiven Medium entwickeln, das es sich für Kabelfernsehen vorgestellt hatte. Als Prototyp schrieb Naughton einen kleinen Browser, Webrunner (benannt nach dem Film Blade Runner), umbenannt Hotjava[30] im Jahr 1995.

Sonne benannte die Oak -Sprache in die Sprache um Java nach einer Warenzeichen Die Suche hat das enthüllt Eichenentechnologie verwendete den Namen Eiche.[33] Obwohl Java 1.0a 1994 zum Download zum Download zur Verfügung stand, wurde am 23. Mai 1995 die erste Veröffentlichung von Java, Java 1.0a2 mit dem Hotjava -Browser, am 23. Mai 1995 auf der Sunworld -Konferenz angekündigt. Begleitende Gages Ankündigung, Marc Andreessen, Executive Vice President von Netscape Communications Corporationunerwartet kündigte an, dass Netscape -Browser Java -Unterstützung enthalten würden. Am 9. Januar 1996 bildete Sun Microsystems die Javasoft Group, um die Technologie zu entwickeln.[34]

Während die sogenannten Java-Applets für Webbrowser nicht mehr die beliebteste Verwendung von Java (mit IT, z. B. gebrauchter serverseitiger) oder der beliebtesten Möglichkeit, code clientseitig auszuführen (JavaScript, die als beliebter übernommen wurde), ist es das beliebte. Es ist immer noch möglich, Java (oder andere JVM-Sprachen wie Kotlin) in Webbrowsern auszuführen, auch nachdem JVM-Support unter Verwendung von z. Teavm.

Versionsgeschichte

Die Java -Sprache hat seit der Veröffentlichung von JDK mehrere Änderungen durchlaufen (Java Entwickler-Kit) 1.0 am 23. Januar 1996 sowie zahlreiche Ergänzungen von Klassen und Paketen zum Standard Bibliothek. Seit J2SE 1.4 die Java Community -Prozess (JCP) hat die Entwicklung der Java -Sprache regiert. Der JCP verwendet Java -Spezifikationsanfragen (JSRS) Vorschläge und Angabe von Ergänzungen und Änderungen an der Java -Plattform. Das Java -Sprachspezifikation (JLS) Gibt die Sprache an; Änderungen an den JLS werden unter JSR 901 verwaltet.[35]

Sonne freigelassen JDK 1.1 am 19. Februar 1997. Zu den wichtigsten Ergänzungen gehörten eine umfassende Umrüstung des Awt Ereignismodell, innere Klassen Hinzufügen zur Sprache, Javabeans und JDBC.

J2SE 1.2 (8. Dezember 1998) - Codename Spielplatz. Diese und nachfolgende Veröffentlichungen durch J2SE 5.0 wurden umbenannt Java 2 und der Versionsname "J2SE" (Java 2 Plattform, Standard Edition) ersetzte JDK, um die Basisplattform von J2EE zu unterscheiden (Java 2 -Plattform, Enterprise Edition) und j2me (Java 2 -Plattform, Micro Edition). Wichtige Ergänzungen enthalten Betrachtung, a Sammlungen Rahmen, Java Idl (ein Schnittstellenbeschreibung Sprache Implementierung für Corba Interoperabilität) und die Integration der Schwingen Grafische API in die Kernklassen. EIN Java-Plug-In wurde freigelassen und Suns JVM war mit einem ausgestattet JIT -Compiler zum ersten Mal.

J2SE 1.3 (8. Mai 2000) - Codename Turmfalke. Bemerkenswerte Änderungen umfassten die Bündelung der Hotspot JVM (der Hotspot JVM wurde erstmals im April 1999 für die J2SE 1.2 JVM veröffentlicht), JavaSound, Java -Namens- und Verzeichnisschnittstelle (JNDI) und Java -Plattform -Debugger -Architektur (JPDA).

J2SE 1.4 (6. Februar 2002) - Codename Merlin. Dies wurde die erste Veröffentlichung der Java -Plattform, die im Rahmen des Java -Community -Prozesses als JSR 59 entwickelt wurde.[36] Hauptänderungen enthalten Reguläre Ausdrücke Nachher modelliert Perl, Ausnahmeberächen, ein integriertes Xml Parser und Xslt Prozessor (Jaxp), und Java Web Start.

J2SE 5.0 (30. September 2004) - Codename Tiger. Es wurde ursprünglich 1,5 nummeriert, was immer noch als interne Versionsnummer verwendet wird.[37] Tiger wurde unter JSR 176 entwickelt und fügte mehrere bedeutende neue Sprachmerkmale hinzu, darunter die For-Each-Schleife, Generika, Autoboxen und var-args.[38]

Java SE 6 (11. Dezember 2006) - Codename Mustang. Es wurde mit einem Datenbankmanager gebündelt und erleichtert die Verwendung von Skriptsprachen mit dem JVM (wie z. JavaScript Verwendung Mozilla's Nashorn Motor). Zum Zeitpunkt dieser Version ersetzte Sun den Namen "J2SE" durch Java se und ließ die ".0" aus der Versionsnummer fallen.[39] Weitere wichtige Änderungen sind die Unterstützung von Steckablagen Anmerkungen (JSR 269), viele GUI Verbesserungen, einschließlich nativer UI -Verbesserungen, um das Erscheinungsbild des Erscheinungsbilds zu unterstützen Windows Vistaund Verbesserungen an der Java -Plattform -Debugger -Architektur (JPDA) & JVM -Werkzeugschnittstelle zur besseren Überwachung und Fehlerbehebung.

Java SE 7 (28. Juli 2011) - Codename Delfin. Diese Version wurde unter JSR 336 entwickelt.[40] Es fügte viele kleine Sprachänderungen hinzu, einschließlich Zeichenfolgen im Switch, Try-with-Ressources und Geben Sie Inferenz ein Für generische Instanzschöpfung. Die JVM wurde mit Unterstützung dynamischer Sprachen erweitert, während die Klassenbibliothek unter anderem mit einem Join/Fork -Framework erweitert wurde.[41] Eine verbesserte neue Datei -E/A -Bibliothek und Unterstützung für neue Netzwerkprotokolle wie z. SCTP. Java 7 Update 76 wurde im Januar 2015 mit dem Ablaufdatum am 14. April 2015 veröffentlicht.[42]

Im Juni 2016, nach dem letzten öffentlichen Update von Java 7,[43] "aus der Ferne ausnutzbar"Sicherheitsfehler in Java 6, 7 und 8 wurden angekündigt.[15]

Java Se 8 (18. März 2014) - Codename Kenai. Bemerkenswerte Änderungen umfassen die Unterstützung auf Sprachebene für Lambda -Ausdrücke (Schließungen) und Standardmethoden, das Projekt Nashorn JavaScript Runtime, eine neue Datum und Uhrzeit -API, die von der Joda -Zeit inspiriert ist, und die Entfernung von Permgen. Diese Version wird auf der Windows XP -Plattform nicht offiziell unterstützt.[44] Aufgrund des Lebenszyklus von Java 7 ist es jedoch die empfohlene Version für XP -Benutzer. Zuvor wurde für Windows XP SP3 nur eine inoffizielle Installationsmethode beschrieben. Es bezieht sich auf JDK8, die sich entwickelnde Plattform für Java, die auch einen voll funktionsfähigen Java -Laufzeitumgebung.[45] Java 8 wird unter Windows Server 2008 R2 SP1, Windows Vista SP2 und Windows 7 SP1, Ubuntu 12.04 LTs und höher (und einigen anderen OSS) unterstützt.[46]

Java SE 9 und 10 hatte höhere Systemanforderungen, d. H. Windows 7 oder Server 2012 (und der Webbrowser -Mindestzertifikat ist erhöht auf Internet Explorer 11 oder andere Webbrowser) und Oracle fiel fallen 32-Bit Kompatibilität für alle Plattformen, d. H. Nur Oracle's "64-Bit Java Virtual Machines (JVMs) sind zertifiziert ".[47]

Java SE 11 wurde im September 2018 veröffentlicht, der erste Lts Freigabe seit der Schnelle Freilassung Das Modell wurde beginnend mit Version 9 übernommen. Zum ersten Mal repräsentiert OpenJDK 11 den vollständigen Quellcode für die Java-Plattform unter der GNU General Public Lizenz, und während Oracle es immer noch mit einer optionalen proprietären Lizenz gibt, gibt es keine Codeunterschiede noch module einzigartig für die proprietär lizenzierte Version.[48] Zu den Java 11 -Funktionen gehören zwei neue Implementierungen für den Müllsammler, Flugrekorder für Debugg Deep Issues, ein neuer HTTP -Client, einschließlich Websocket Unterstützung.[49]

Java SE 12 wurde März 2019 veröffentlicht.[50]

Java Se 13 wurde September 2019 veröffentlicht.[51]

Java SE 14 wurde März 2020 freigelassen.[52]

Java SE 15 wurde September 2020 freigelassen.

Java SE 16 wurde März 2021 freigelassen.

Java SE 17 wurde September 2021 freigelassen.

Java SE 18 wurde März 2022 freigelassen.


Zusätzlich zu Sprachänderungen wurden im Laufe der Jahre in der Java -Klassenbibliothek wesentliche Änderungen vorgenommen, die von einigen hundert Klassen in JDK 1,0 auf mehr als dreitausend in J2SE 5.0 gewachsen sind. Ganze neue APIs wie z. Schwingen und Java 2d, haben sich entwickelt, und viele der ursprünglichen JDK 1.0 -Klassen und -Methoden waren veraltet.

Verwendungszweck

Desktop verwendet

Ein Java -Programm, das auf einem läuft Windows Vista Desktop -Computer (unterstützt von Java 8, aber nicht offiziell von späteren Versionen wie Java 11)

Laut Oracle im Jahr 2010 wurde die Java -Laufzeitumgebung auf über 850 Millionen PCs gefunden.[53] Microsoft hat nicht gebündelt a Java -Laufzeitumgebung (Jre) mit seinem Betriebssysteme Da Sun Microsystems Microsoft verklagt hat, um Windows-spezifische Klassen in die gebündelte Java-Laufzeitumgebung hinzuzufügen und die neuen Klassen durchzuführen Visuell j ++. Apple enthält keine Java -Laufzeit mehr mit Os x ab Version 10.7Das System fordert jedoch den Benutzer auf, es beim ersten Start einer Anwendung herunterzuladen und zu installieren. Viele Linux -Verteilungen umfassen die OpenJDK Laufzeit als Standard -Virtual Machine, die die Notwendigkeit negiert, das proprietäre Oracle Jre herunterzuladen.[54]

Einige Java -Anwendungen sind in ziemlich weit verbreiteter Desktop -Verwendung, einschließlich der NetBeans und Finsternis Integrierte Entwicklungsumgebungen, und Dateifreigabe -Clients wie z. Limewire und Vuze. Java wird auch in der verwendet Matlab Mathematik -Programmierumgebung, beide für die Rendern der Benutzeroberfläche und als Teil des Kernsystems. Java bietet eine Cross -Plattform -Benutzeroberfläche für einige High -End -kollaborative Anwendungen wie z. B. Lotus Notizen.

Oracle plant, zunächst das separat installierbare Java -Browser -Plugin von der Java -Laufzeitumgebung in JDK 9 zu verabreichen und dann vollständig aus einer zukünftigen Version zu entfernen und Webentwickler zu einer alternativen Technologie zu zwingen.[55]

Maskottchen

Einfacher alter Herzog

Herzog ist Javas Maskottchen.[56]

Als Sun das ankündigte Java se und Java mich würde unter a freigelassen werden Kostenlose Softwarelizenz (das GNU Allgemeine öffentliche Lizenz), sie veröffentlichten die Duke -Grafiken unter dem freien BSD -Lizenz zur selben Zeit.[57] Jedes Jahr entsteht eine neue Duke -Persönlichkeit.[58] Im Juli 2011 beinhaltete "Future Tech Duke" beispielsweise eine größere Nase, einen Jetpack und Blue Wings.[59]

Lizenzierung

Der Quellcode für Suns Implementierungen von Java (d. H. Die De -facto -Referenzimplementierung) stand seit einiger Zeit jedoch zur Verfügung, aber bis vor kurzem.[60] Die Lizenzbedingungen sind stark eingeschränkt, was damit getan werden könnte, ohne einen Vertrag mit Sun zu unterschreiben (und im Allgemeinen zu bezahlen). Daher erfüllten diese Begriffe die Anforderungen von beiden nicht Open Source Initiative oder der Kostenlose Software -Stiftung Open Source oder Free Software als Sun Java als proprietäre Plattform angesehen zu werden.[61]

Während mehrere Projekte von Drittanbietern (z. GNU -Klassenpfad und Apache -Harmonie) erstellt gratis Software Partielle Java -Implementierungen, die große Größe der Sonnenbibliotheken kombiniert mit der Verwendung von saubere Raummethoden bedeutete, dass ihre Implementierungen der Java -Bibliotheken (der Compiler und VM vergleichsweise klein und gut definiert sind) unvollständig und nicht vollständig kompatibel. Diese Implementierungen waren auch weitaus weniger optimiert als die von Sun.

Gratis Software

Sonne angekündigt in Javaone 2006, dass Java werden würde frei und Quelloffene Software,[62] und am 25. Oktober 2006 auf der Oracle Openworld Conference, Jonathan I. Schwartz sagte, dass das Unternehmen die Veröffentlichung des Kerns bekannt geben sollte Java -Plattform als kostenlose und Open -Source -Software innerhalb von 30 bis 60 Tagen.[63]

Sun veröffentlichte den Java Hotspot Virtual Machine und Compiler als kostenlose Software unter dem GNU Allgemeine öffentliche Lizenz Am 13. November 2006 mit dem Versprechen, dass der Rest des JDK (einschließlich des JRE) bis März 2007 unter die GPL platziert wird ("mit Ausnahme einiger Komponenten, dass Sun nicht das Recht hat, in verteilbarer Quellform zu veröffentlichen unter der GPL ").[64] Entsprechend Richard StallmanDies würde ein Ende der "Java -Falle" bedeuten.[65] Mark Shuttleworth die erste Presseankündigung genannt, "ein echter Meilenstein für die gratis Software Gemeinschaft".[66]

Sonne ließ die Quellcode des Klassenbibliothek unter Gpl Am 8. Mai 2007, mit Ausnahme einiger begrenzter Teile, die von Sun von Dritten lizenziert wurden, die nicht wollten, dass ihr Code unter einer kostenlosen Software- und Open-Source-Lizenz veröffentlicht wurde.[67] Einige der belasteten Teile erwiesen sich als ziemlich wichtige Teile der Plattform, wie z. OpenJDK -Klassenbibliothek).

Das Ziel von Sun war es, die Teile zu ersetzen, die proprietär und geschlossen sind, durch alternative Implementierungen und die Klassenbibliothek vollständig frei und Open Source zu machen. In der Zwischenzeit rief ein Projekt eines Drittanbieters an Eistee Erstellt einen völlig kostenlosen und sehr verwendbaren JDK, indem er einen belasteten Code durch Stubs oder Code von ersetzt hat GNU -Klassenpfad. OpenJDK ist jedoch seitdem ohne die belasteten Teile baubar (von OpenJDK 6 B10[68]) und ist zur Standard -Laufzeitumgebung für die meisten Linux -Verteilungen geworden.[69][70][71][72]

Im Juni 2008 wurde angekündigt, dass dies angekündigt wurde Eistee6 (als die verpackte Version von OpenJDK on Fedora 9) hat die bestanden Technologiekompatibilität Kit Tests und können behaupten, eine vollständig kompatible Java 6 -Implementierung zu sein.[73]

Da OpenJDK unter der GPL steht, ist es möglich, eine benutzerdefinierte Version des JRE direkt mit Softwareanwendungen neu zu verteilen.[74][75] Anstatt dass der Enduser (oder sein Sysadmin) die richtige Version des proprietären Oracle JRE auf jedes ihrer Systeme selbst herunterladen und installieren kann.

Kritik

In den meisten Fällen ist der Java -Support in Webbrowsern unnötig, und Sicherheitsexperten empfehlen, dass er nicht in einem Browser ausgeführt wird, wenn dies nicht unbedingt erforderlich ist.[76] Es wurde vermutet, dass die Benutzer, wenn Java von einigen wenigen Websites benötigt wird, eine separate Browser -Installation speziell für diese Websites haben.

Generika

Wann Generika wurden zu Java 5.0 hinzugefügt, es gab bereits einen großen Klassenrahmen (viele davon waren bereits veraltet), so dass Generika so ausgewählt wurden, mithilfe der Implementierung implementiert zu werden Löschen etwas erlauben Migrationskompatibilität und Wiederverwendung dieser bestehenden Klassen. Dies begrenzte die Funktionen, die durch diese Ergänzung im Vergleich zu einigen anderen Sprachen bereitgestellt werden könnten.[77][78] Die Hinzufügung von Wildcards machte Java unangemessen.[79]

Unsignierte ganzzahlige Typen

Java fehlt einheimisch Unsigned Ganzzahl Typen. Unsignierte Daten werden häufig aus Programmen generiert C und das Fehlen dieser Typen verhindert den direkten Datenaustausch zwischen C und Java. Unsignierte große Zahlen werden auch in vielen numerischen Verarbeitungsfeldern verwendet, einschließlich der Kryptographie, die Java für diese Aufgaben weniger bequem zu verwenden.[80] Obwohl es möglich ist, dieses Problem mit dem Conversion -Code und der Verwendung größerer Datentypen teilweise zu umgehen, wird die Verwendung von Java -umständlich zur Behandlung der nicht signierten Daten verwendet. Während eine 32-Bit-signierte Ganzzahl verwendet werden kann, um einen 16-Bit-Wert mit relativer Leichtigkeit zu halten, würde ein 32-Bit-Wert für eine 64-Bit-Signed Ganzzahl erforderlich sein. Zusätzlich kann ein 64-Bit-Wert nicht unterzeichnet werden, der mit einem Ganzzahltyp in Java gespeichert werden kann, da in der Java-Sprache kein Typ größer als 64 Bit vorhanden ist. Wenn sie mit Funktionen abstrahiert werden, werden Funktionsaufrufe für viele Operationen erforderlich, die in einigen anderen Sprachen heimisch sind. Alternativ ist es möglich, die signierten Ganzzahlen von Java zu verwenden, um unsignierte ganze Zahlen derselben Größe zu emulieren. Dies erfordert jedoch detaillierte Kenntnisse über komplexe Bitgewise -Operationen.[81]

Schwimmender Punktarithmetik

Während Javas schwimmende Punktarithmetik weitgehend auf IEEE 754 (Standard für binäre Gleitkomma-Arithmetik) bestimmte Funktionen werden auch bei Verwendung der Verwendung nicht unterstützt strictfp Modifikator wie Ausnahmeflaggen und gerichtete Runden-Funktionen, die von IEEE Standard 754 vorgeschrieben sind. Darüber hinaus sind die in 754 zulässigen erweiterten Präzisions-Gleitkomma-Typen in Java nicht zulässig.[82][83]

Leistung

In den frühen Tagen von Java (vor dem Hotspot VM wurde in Java 1.3 im Jahr 2000 implementiert) Es gab einige Kritikpunkte der Leistung. Benchmarks In der Regel handelt es sich bei Java um etwa 50% langsamer als C (eine Sprache, die dem nativen Code kompiliert).[84][85][86]

Javas Leistung hat sich seit den frühen Versionen erheblich verbessert.[18] Leistung von JIT -Compiler Im Vergleich zu nativen Compilern wurde in einigen optimierten Tests gezeigt, dass sie ziemlich ähnlich sind.[18][19][20]

Java -Bytecode kann entweder zur Laufzeit von einer virtuellen Maschine interpretiert werden oder kann zur Ladezeit oder zur Laufzeit in nativen Code kompiliert werden, der direkt auf der Hardware des Computers ausgeführt wird. Die Interpretation ist langsamer als die native Ausführung, und die Zusammenstellung zur Ladezeit oder zur Laufzeit hat eine anfängliche Leistungsstrafe für die Zusammenstellung. Moderne Performanten -JVM -Implementierungen verwenden alle den Kompilierungsansatz. Nach der anfänglichen Startzeit entspricht die Leistung dem nativen Code.

Sicherheit

Die Java -Plattform bietet eine Sicherheitsarchitektur[87] Dies ist so konzipiert, dass der Benutzer nicht vertrauenswürdige Bytecode auf "Sandboxed" ausführen kann, um vor böswilliger oder schlecht geschriebener Software zu schützen. Diese "Sandboxing" -Funktion soll den Benutzer schützen, indem der Zugriff auf bestimmte Plattformfunktionen und APIs einschränken, die von genutzt werden können Malware, wie z. B. Zugriff auf das lokale Dateisystem, Ausführen beliebiger Befehle oder Zugriff auf Kommunikationsnetzwerke.

In den letzten Jahren haben Forscher in einigen weit verbreiteten Java -Implementierungen zahlreiche Sicherheitsfehler entdeckt, einschließlich Oracle, die es nicht vertrauenswürdiger Code ermöglichen, den Sandboxing -Mechanismus zu umgehen und Benutzer böswilligen Angriffen auszusetzen. Diese Fehler betreffen nur Java-Anwendungen, die beliebige nicht vertrauenswürdige Bytecode ausführen, z. Anwendungen, bei denen der Benutzer vertraut und die vollständige Kontrolle hat, werden alle Code, die ausgeführt wird, nicht betroffen.

Am 31. August 2012, Java 6 und 7 (beide damals unterstützt) auf Microsoft Windows, Os xund Linux hatte einen schwerwiegenden Sicherheitsfehler, der a erlaubte Remote -Exploit Um einfach eine böswillige Webseite zu laden.[88] Java 5 wurde später ebenfalls fehlerhaft.[89]

Am 10. Januar 2013 sprachen sich drei Computerspezialisten gegen Java aus und erzählten Reuters dass es nicht sicher war und dass Menschen Java deaktivieren sollten. Jaime Blasco, Labs -Manager bei Alienvault Labs, erklärte: "Java ist ein Chaos. Es ist nicht sicher. Sie müssen es deaktivieren."[90] Diese Sicherheitsanfälligkeit beeinflusst Java 7 und es ist unklar, ob es sich auswirkt Java 6Es wird also vermutet, dass die Verbraucher es deaktivieren.[91][92] Sicherheitswarnungen von Oracle geben Zeitpläne für kritische Sicherheits-Patches an Java an.[93]

Am 14. Januar 2013 sagten Sicherheitsexperten, dass das Update immer noch nicht vor Angriffen schützt.[94] Dieses Exploit -Loch veranlasste eine Antwort von der US -amerikanische Heimatschutzministerium Benutzer ermutigen, Java zu deaktivieren oder zu deinstallieren.[16] Apple Blacklisted Java in begrenzter Reihenfolge für alle Computer, die seine ausführen Os x Betriebssystem durch ein Virusschutzprogramm.[95]

2014 und reagieren Sie auf den damaligen Java-Sicherheits- und Schwachstellenproblemen, Security Blogger Brian Krebs hat aufgefordert, mindestens das Java -Browser -Plugin und auch die gesamte Software zu entfernen. "Ich freue mich auf eine Welt ohne Java-Plugin (und darauf, die Leser nicht an vierteljährliche Patch-Updates zu erinnern), aber es wird wahrscheinlich Jahre dauern, bis verschiedene Versionen dieses Plugins meist aus Endbenutzersystemen weltweit entfernt werden."[96] "Einmal verspricht es, hat es seine Nützlichkeit im Browser überlebt und ist zu einem Albtraum geworden, der Cyber-Kriminelle auf Kosten der Computerbenutzer begeistert."[97] "Ich denke Kann keine Wahl haben. "[98]

Adware

Die von Oracle dividierte Java Runtime-Umgebung bietet eine Geschichte von gesponserten Software, die standardmäßig während der Installation und während der Updates installiert werden kann, die jeden Monat oder so einsetzt. Dies beinhaltet das ""Ask.com Symbolleiste"Das wird die Browser -Suchanfragen zu Anzeigen und" McAfee Security Scan Plus "umleiten.[99] Diese Angebote können durch eine Einstellung im Java -Bedienfeld blockiert werden, obwohl dies nicht offensichtlich ist. Diese Einstellung befindet sich unter der Registerkarte "Advanced" im Java -Bedienfeld unter der Überschrift "Verschiedenes", wobei die Option als Option zum Unterdrückung von "Sponsorangeboten" bezeichnet wird.

Aktualisieren Sie das System

Java hat noch keinen automatischen Updater veröffentlicht, für den keine Benutzerinterventionen und Verwaltungsrechte erforderlich sind[100] Im Gegensatz zu Google Chrome[101] und Flash Player.[102]

Siehe auch

Verweise

  1. ^ "Javasoft versendet Java 1.0" (Pressemitteilung). Archiviert von das Original am 5. Februar 2008. Abgerufen 9. Februar, 2016.
  2. ^ Ortiz, C. Enrique; Giguère, Éric (2001). Mobiles Informationsgerätsprofil für Java 2 Micro Edition: Entwicklerhandbuch (PDF). John Wiley & Sons. ISBN 978-0471034650. Abgerufen 30. Mai, 2012.
  3. ^ "JDK veröffentlicht". Oracle Corporation. Abgerufen 21. Januar, 2022.
  4. ^ "JDK veröffentlicht". Oracle Corporation. Abgerufen 21. Januar, 2022.
  5. ^ "Hotspot -Gruppe". Openjdk.java.net. Abgerufen 9. Februar, 2016.
  6. ^ a b "Oracle JDK 8 und JRE 8 Certified System Configurations Inhalt". Oracle.com. 8. April 2014. Abgerufen 9. Februar, 2016.
  7. ^ "Java SE 7 unterstützte Orte". Oracle.com. Abgerufen 9. Februar, 2016.
  8. ^ "OpenJDK: GPLV2 + ClassPath -Ausnahme". Openjdk.java.net. 1. April 1989. Abgerufen 9. Februar, 2016.
  9. ^ "BCL für Java SE". Oracle.com. 2. April 2013. Abgerufen 9. Februar, 2016.
  10. ^ Naughton, Patrick. "Java wurde stark von Objective-C beeinflusst". Virtuelle Schule. Archiviert von das Original am 13. August 2012.
  11. ^ "Sonne öffnet Java". Sun Microsystems. 13. November 2006. archiviert von das Original am 13. Mai 2008.
  12. ^ O'Hair, Kelly (Dezember 2010). "OpenJDK7 und OpenJDK6 Binary Plugs Logic entfernt". Oracle Corporation. Abgerufen 25. November, 2011.
  13. ^ "Warum sollte ich ältere Versionen von Java aus meinem System deinstallieren?". www.java.com. Archiviert Aus dem Original am 12. Februar 2018. Abgerufen 6. Februar, 2018.
  14. ^ "Warum sollte ich ältere Versionen von Java aus meinem System deinstallieren?". Orakel. Abgerufen 9. September, 2016.
  15. ^ a b "Oracle Critical Patch Update - Juli 2016". www.oracle.com.
  16. ^ a b Whittaker, Zack (11. Januar 2013). "Die Heimatschutzsicherung warnt davor, Java inmitten des Zero-Day-Fehlers zu deaktivieren". ZDNET. Abgerufen 9. Februar, 2016.
  17. ^ Alexander, Christopher. "Java SE 6 Fortgeschrittene". www.oracle.com. Abgerufen 20. Mai, 2018.
  18. ^ a b c Lewis, J. P.; Neumann, Ulrich. "Leistung von Java gegen C ++". Grafik und immersives Technologielabor, Universität von Südkalifornien.
  19. ^ a b "Die Java schneller als C ++ Benchmark". Kano.net. 14. November 2003. Abgerufen 9. Februar, 2016.
  20. ^ a b FRETTS - Eine Performance -Fallstudie Archiviert 2009-03-25 bei der Wayback -Maschine, Willie Walker, Paul Lamere, Philip Kwok
  21. ^ "Kapitel 1 Einleitung". docs.oracle.com.
  22. ^ www.beanshell.org
  23. ^ "Häufig gestellte Fragen zur Müllsammlung im Hotspot Java Virtual Machine". Sun Microsystems. 6. Februar 2003. Abgerufen 7. Februar, 2009.
  24. ^ a b Masamitsu, Jon (28. November 2006). "Präsentieren der dauerhaften Generation". Archiviert von das Original am 25. August 2016. Abgerufen 7. Februar, 2009.
  25. ^ Nutter, Charles (11. September 2008). "Ein erster Vorgeschmack auf angerufenesNamic". Abgerufen 7. Februar, 2009.
  26. ^ "JEP 122: Entfernen Sie die dauerhafte Generation". Oracle Corporation. 4. Dezember 2012. Abgerufen 23. März, 2014.
  27. ^ "Was ist Java, ist es unsicher und sollte ich es verwenden?". Lifehacker.com. 14. Januar 2013. Abgerufen 26. Juni, 2015.
  28. ^ "Gibt es Schutz vor Java -Exploits? | Kaspersky Lab". Kaspersky.com. 9. September 2013. Archiviert von das Original am 4. April 2015. Abgerufen 26. Juni, 2015.
  29. ^ Southwick, Karen (1999). High Noon: Die innere Geschichte von Scott McNealy und dem Aufstieg von Sun Microsystems. New York [U.A.]: Wiley. pp.120–122. ISBN 0471297135.
  30. ^ a b Byous, Jon (April 2003). "Java -Technologie: Die frühen Jahre". Sun Microsystems. Archiviert von das Original am 30. Mai 2008. Abgerufen 2. August, 2009.
  31. ^ Southwick, Karen (1999). High Noon: Die innere Geschichte von Scott McNealy und dem Aufstieg von Sun Microsystems. New York [U.A.]: Wiley. p.124. ISBN 0471297135.
  32. ^ Walrath, Kathy (21. Dezember 2001). "Vorwort". Sun Microsystems. Abgerufen 2. August, 2009.
  33. ^ Murphy, Kieron (4. Oktober 1996). "Warum haben sie sich entschieden, es Java zu nennen?". JavaRld. Abgerufen 2020-07-15. "Die Anwälte hatten uns gesagt, dass wir den Namen" Eiche "nicht verwenden konnten, weil [er bereits von Oak Technologies eingetragen wurde", sagte Frank Yellin, Senior Engineer bei Sun. "Also wurde eine Brainstorming -Sitzung abgehalten, um Ideen für einen neuen Namen zu entwickeln."
  34. ^ "Sun Microsystems kündigt die Bildung von Javasoft an" (Pressemitteilung). Sun Microsystems. 9. Januar 1996. archiviert von das Original am 2008-02-10.
  35. ^ "Das Java Community Process (SM) -Programm - JSRS: Java -Spezifikationsanfragen - Detail JSR# 63". JCP.org. Abgerufen 9. Februar, 2016.
  36. ^ "Das Java Community Process (SM) -Programm - JSRS: Java -Spezifikationsanfragen - Detail JSR# 59". JCP.org. Abgerufen 9. Februar, 2016.
  37. ^ "Version 1.5.0 oder 5.0?". Java.sun.com. Abgerufen 9. Februar, 2016.
  38. ^ "Das Java Community Process (SM) -Programm - JSRS: Java -Spezifikationsanfragen - Detail JSR# 176". JCP.org. Abgerufen 9. Februar, 2016.
  39. ^ "Java -Namen". Java.com. Orakel. Abgerufen 25. August, 2011.
  40. ^ "Das Java Community Process (SM) -Programm - JSRS: Java -Spezifikationsanfragen - Detail JSR# 336". JCP.org. Abgerufen 9. Februar, 2016.
  41. ^ Lea, Doug (13. September 2004). "JSRS: Java -Spezifikationsanfragen: JSR 166: Parallelität Versorgungsunternehmen". Java Community -Prozess. Oracle Corp.
  42. ^ "Java ™ SE -Entwicklungskit 7 Update 76 Versionshinweise". Oracle.com. Abgerufen 9. Februar, 2016.
  43. ^ "Java 7 und Java 8 veröffentlicht nach Datum". www.java.com.
  44. ^ "Windows XP und Java". Java.com. 8. April 2014. Abgerufen 9. Februar, 2016.
  45. ^ "Java - Installieren von JDK8 unter Windows XP - Advapi32.dll ERROR". Paketüberfluss.
  46. ^ "Oracle JDK 8 und JRE 8 zertifizierte Systemkonfigurationen". www.oracle.com.
  47. ^ "Oracle JDK 10 zertifizierte Systemkonfigurationen". www.oracle.com. Abgerufen 27. März, 2018. Nur der X.org -Modus unterstützt. Wayland Der Modus ist nicht unterstützt.
  48. ^ "Oracle Java SE Support Roadmap". Oracle Corporation. 25. September 2018. Abgerufen 25. September, 2018.
  49. ^ "JDK 11". Oracle Corporation. 25. September 2018. Abgerufen 26. September, 2018.
  50. ^ "JDK 12". OpenJDK. Abgerufen 22. März, 2019.
  51. ^ "JDK 13". OpenJDK. Abgerufen 17. September, 2019.
  52. ^ "JDK 14". OpenJDK. Abgerufen 25.März, 2020.
  53. ^ "Was ist Java -Technologie und warum brauche ich sie?". Archiviert von das Original am 25. September 2010. Abgerufen 15. Dezember, 2011. Java läuft weltweit auf mehr als 850 Millionen Personalcomputern und auf Milliarden von Geräten weltweit, einschließlich Mobil- und Fernsehgeräten.
  54. ^ "Java - Fedora -Projekt Wiki". fedoraproject.org.
  55. ^ Thema, Dalibor (27. Januar 2016). "In ein pluginfreies Web wechseln". Orakel.
  56. ^ "Herzog, das Java -Maskottchen". Orakel. Abgerufen 18. März, 2019.
  57. ^ "Herzog: Projekt Homepage". Sun Microsystems. Archiviert von das Original am 18. Juni 2007. Abgerufen 18. März, 2007.
  58. ^ "Herzog, das Java -Maskottchen".
  59. ^ "Future Tech Duke (die Java -Quelle)". Tori Wieltt. Archiviert von das Original am 20. August 2011. Abgerufen 17. August, 2011.
  60. ^ Smith, Donald (11. September 2018). "Oracle JDK veröffentlicht für Java 11 und später".
  61. ^ Stallman, Richard (24. Mai 2006). "Der merkwürdige Vorfall der Sonne in der Nacht". Groklaw.
  62. ^ Schwartz, Jonathan. "?". Jonathan Schwartzs Blog. Sun Microsystems. Archiviert von das Original am 15. Juli 2006.
  63. ^ "Oracle OpenWorld: Unbreakable Linux / 5015.2 Nicht am Horizont | Formtek -Blog". Formtek.com. 26. Oktober 2006. Abgerufen 9. Februar, 2016.
  64. ^ "Oracle und Sun Microsystems | Strategische Akquisitionen | Oracle". Sun.com. Abgerufen 9. Februar, 2016.
  65. ^ "Kostenlos, aber gefesselt - Die Java Trap - GNU -Projekt - kostenlose Software -Stiftung". Gnu.org. 12. April 2004. Abgerufen 9. Februar, 2016.
  66. ^ "Sun 'veröffentlicht Java zur Welt". BBC News. 13. November 2006. Abgerufen 6. Mai, 2010.
  67. ^ "Open JDK ist hier!". Sun Microsystems. 8. Mai 2007. Abgerufen 9. Mai, 2007.
  68. ^ Wielaard, Mark (30. Mai 2007). "OpenJDK6 B10 Quelle gepostet". Abgerufen 12. Juli, 2008.
  69. ^ "Redhat Java".
  70. ^ "Fedora Java".
  71. ^ "Debian Java".
  72. ^ "Ubuntu Java".
  73. ^ Sharples, Rich (19. Juni 2008). "Java ist endlich frei und offen". Archiviert von das Original am 20. Juni 2008.
  74. ^ libgdx (9. Dezember 2013). "Bündelung eines jre · libgdx/libgdx wiki · github". Github.com. Abgerufen 9. Februar, 2016.
  75. ^ "Frage zum Bündeln von Custom OpenJDK". Java-gaming.org. Archiviert von das Original am 4. März 2016. Abgerufen 9. Februar, 2016.
  76. ^ Cluley, Graham (15. Januar 2013). ""Es sei denn, es ist absolut notwendig, Java in Webbrowsern zu betreiben, deaktivieren Sie es", sagt das von DHS gesponserte Zertifikat-nackte Sicherheit "-nackte Sicherheit". NakedSecurity.Sophos.com. Abgerufen 9. Februar, 2016.
  77. ^ "Generika in Java". Object Computing, Inc. archiviert aus das Original am 2. Januar 2007. Abgerufen 9. Dezember, 2006.
  78. ^ "Was ist los mit Java: Typ Löschen". 6. Dezember 2006. Abgerufen 9. Dezember, 2006.
  79. ^ "Java und Scalas Typ -Systeme sind unangemessen" (PDF).
  80. ^ "Java -Bibliotheken sollten Unterstützung für die unsignierte ganzzahlige Arithmetik bieten". Fehlerdatenbank, Sun Developer -Netzwerk. Orakel. Abgerufen 18. Januar, 2011.
  81. ^ Owens, Sean R. (5. November 2009). "Java und unsigned int, nicht signiertes kurzes, nicht signiertes Byte, nicht signiertes langes usw. (oder besser gesagt das Fehlen davon)". Darksleep.com. Abgerufen 9. Oktober, 2010.
  82. ^ Kahan, W.; Darcy, Joseph D. (1. März 1998). "Wie Javas schwimmender Punkt alle überall tut" (PDF). Abgerufen 9. Dezember, 2006.
  83. ^ "Typen, Werte und Variablen". Sun Microsystems. Abgerufen 9. Dezember, 2006.
  84. ^ Welche Programmiersprachen sind am schnellsten? | Computersprach -Benchmarks -Spiel Archiviert 14. August 2011 bei der Wayback -Maschine
  85. ^ Geschwindigkeit ÷ C ++ Gnu G ++ Geschwindigkeit | Computersprach -Benchmarks -Spiel Archiviert 26. September 2011 bei der Wayback -Maschine
  86. ^ "C ++ gegen Java Performance; Es ist ein Unentschieden!. Blog.cfelde.com. 27. Juni 2010. Abgerufen 9. Februar, 2016.
  87. ^ "Java -Sicherheitsarchitektur: Inhalt". Docs.oracle.com. 2. Oktober 1998. Abgerufen 9. Februar, 2016.
  88. ^ Horowitz, Michael (31. August 2012). "Java -Sicherheitsfehler: yada yada yada | Computerworld". Blogs.computerworld.com. Archiviert von das Original am 24. Juli 2014. Abgerufen 9. Februar, 2016.
  89. ^ Brook, Chris. "Der erste Stopp für Sicherheitsnachrichten". Bedrohung. Archiviert von das Original am 8. März 2013. Abgerufen 9. Februar, 2016.
  90. ^ "Warum und wie man Java jetzt auf Ihrem Computer deaktiviert - Technologie & Wissenschaft - Innovation". NBC News. 12. Januar 2013. Abgerufen 9. Februar, 2016.
  91. ^ "Das US -amerikanische Ministerium für Heimatschutzrufe auf Computerbenutzer, um Java zu deaktivieren". Forbes.com. Abgerufen 9. Februar, 2016.
  92. ^ Brook, Chris. "Der erste Stopp für Sicherheitsnachrichten". Bedrohung. Archiviert von das Original am 9. April 2013. Abgerufen 9. Februar, 2016.
  93. ^ "Kritische Patch -Updates und Sicherheitswarnungen". Oracle.com. Abgerufen 9. Februar, 2016.
  94. ^ Finkle, Jim (14. Januar 2013). "Der Notfall -Patch für Java kann Cyberkriminalitätslöcher nicht beheben, warnen Experten". Independent.ie. Abgerufen 9. Februar, 2016.
  95. ^ Kelly, Meghan (14. Januar 2013). "Oracle -Probleme für Java Exploit, nachdem DHS vor seinen Löchern warnt". VentureBeat. Abgerufen 9. Februar, 2016.
  96. ^ Krebs, Brian (16. Februar 2016). "Gutes Rätsel zu Oracas Java -Plugin". Krebsonsicherheit.
  97. ^ Gonsalves, Antone (5. September 2012). "Java wird nicht mehr benötigt. Ziehen Sie das Plug-In ab". Lesen Schreiben. Tragbare Welt.
  98. ^ "Java: Solltest du es entfernen?". Der Wächter. 8. Februar 2013.
  99. ^ Bott, ed. "Ein genauer Blick darauf, wie Oracle Täuschungssoftware mit Java -Updates installiert". Zdnet.com. ZDNET. Abgerufen 14. Dezember, 2014.
  100. ^ "Windows 7 - Wie aktualisiere ich Java von einem Nicht -Adminamenten -Konto?". Super Benutzer.
  101. ^ "Google Chrome aktualisieren - Computer - Google Chrome Hilfe". Support.google.com.
  102. ^ "Adobe Security Bulletin". helpx.adobe.com.

Externe Links