Java-Plattform
| Java-Plattform | ||
|---|---|---|
|
| ||
| Entwickler | ||
|
James Gosling und Sun Microsystems https://www.java.com | ||
| Allgemeine Information | ||
| Paradigma | Objektorientiert , Imperativ | |
| Erschien in | neunzehn sechsundneunzig | |
| Entworfen von | Sun Microsystems ( Oracle Corporation ) | |
| Neueste stabile Version | Java Standard Edition 15.0.2 [ 1 ] ( 19. Januar 2021 (1 Jahr, 8 Monate und 29 Tage)) | |
| Typ System | stark , statisch | |
| Implementierungen | OpenJDK , HotSpot und viele andere | |
| Dialekte | Generisches Java, Pizza | |
| beeinflusst von | Pascal , C++ , Objective-C | |
| beeinflusst hat | C# , J# , JavaScript , PHP , Python | |
| Betriebssystem | Multi-Plattform | |
| Lizenz | GNU GPL / Java-Community-Prozess | |
Die Java-Plattform ist der Name einer Computerumgebung oder -plattform, die von Sun Microsystems stammt und in der Lage ist, Anwendungen auszuführen, die mit der Programmiersprache Java oder anderen Sprachen entwickelt wurden, die zu Bytecode und einer Reihe von Entwicklungstools kompiliert werden . In diesem Fall handelt es sich bei der Plattform nicht um eine bestimmte Hardware oder ein bestimmtes Betriebssystem , sondern um eine virtuelle Maschine, die für die Ausführung der Anwendungen zuständig ist, und eine Reihe von Standardbibliotheken , die gemeinsame Funktionen bieten.
Die Plattform ist die sogenannte Java-Plattform (früher bekannt als Java 2-Plattform [ 2 ] ) und umfasst:
- Java Platform, Standard Edition oder Java SE (früher J2SE).
- Java Platform, Enterprise Edition oder Java EE (früher J2EE).
- Java Platform, Micro Edition (Java Platform, Micro Edition) oder Java ME (ehemals J2ME).
Seit 2006 ist die aktuelle Version der Java Platform Standard Edition als Java SE 6 als externe Version und 1.6 als interne Version bekannt. Bevorzugt wird jedoch die Bezeichnung Version 6. Die Plattform umfasst mehrere unterschiedliche Technologien. [ 3 ]
Java-Technologien
Die Java-Plattform besteht aus einer breiten Palette von Technologien, von denen jede einen Teil des Entwicklungskomplexes oder der Echtzeit-Ausführungsumgebung bereitstellt. Beispielsweise interagieren Endbenutzer häufig mit der Java Virtual Machine und dem Standardsatz von Bibliotheken. Außerdem können Java-Anwendungen auf vielfältige Weise verwendet werden, z. B. als Einbettung in eine Webseite . Für die Anwendungsentwicklung wird eine Reihe von Tools verwendet, die als JDK (Java Development Kit oder Entwicklungstools für Java) bekannt sind. Die Technologien, die in der Java-Plattform vorhanden sind, sind:
Java SE Java EE Java ME Java Card Java SE
Java SE ist die Standardplattform und das Ziel dieses Tutorials zu Java, in dem alle grundlegenden Funktionalitäten der Sprache gesammelt sind.
Innerhalb dieser grundlegenden Java-Funktionalitäten finden wir: die Verwendung von Sammlungen, Zugriff auf Dateien mit Java IO und NIO und Datenbanken mit JDBC, Bibliotheken für die Entwicklung von Desktop- oder Webanwendungen wie Swing oder JavaFX, Bibliotheken für Datum und Uhrzeit, Erstellungsmöglichkeit Multithreaded-Anwendungen, Netzwerkfunktionen, XML-Content-Management ... es enthält sogar die Java-DB-Datenbank zur Verwendung im Speicher.
Wenn Sie mit Java beginnen, ist es am normalsten, dass Sie die Java SE-Bibliotheken herunterladen.
Java EE Java EE wurde erstellt, um Unternehmensanwendungen mit Java erstellen zu können. Auf diese Weise erhält Java EE Fähigkeiten zur Entwicklung von Serveranwendungen mit Technologien wie Servlets, JSP oder EJB.
Java EE ermöglicht uns die Entwicklung von Diensten, seien es WSDL (mit JAX-WS), REST (mit JAX-RS) oder die Erstellung von Websockets.
Es bietet auch eine API für die Persistenz von Objekten mit JPA, Messaging-Funktionen mit Java Message, E-Mail mit Java Mail oder die Verwaltung von Batch-Prozessen.
Java ME Java ME ist die Implementierung von Java, die für die Erstellung mobiler Anwendungen erstellt wurde.
Obwohl es sich im Laufe der Zeit mehr auf die Entwicklung von IoT-Geräten (Internet of Things) konzentriert hat: Fernseher, Sensoren, Drucker, ...
So finden wir in Java ME:
Java TV, für die Entwicklung von Anwendungen im Fernsehen oder auf Multimedia-Geräten. Java Embedded, mit dem wir verschiedene Entwicklungsprofile von „Embedded Applications“ erstellen können, die ebenfalls keine grafische Oberfläche haben.
Java-Karten Es ist die Java-Technologie, die uns hilft, Anwendungen zu entwickeln, die auf Chipkarten laufen, die einen Chip und wenig Verarbeitungskapazität und Speicher haben
Java-Laufzeitumgebung
Ein Programm, das auf die Java-Plattform abzielt, benötigt zwei Komponenten auf dem System, auf dem es ausgeführt werden soll: eine Java Virtual Machine (JVM) und eine Reihe von Bibliotheken, um alle Dienste bereitzustellen, die die Anwendung möglicherweise benötigt. Die von Sun Microsystems bereitgestellte JVM ist zusammen mit ihrer Implementierung der Standardbibliotheken als Java Runtime Environment (JRE) bekannt . Die JRE ist das Minimum, das ein System enthalten muss, um eine Java-Anwendung darauf auszuführen.
Virtuelle Java-Maschine
Das Herzstück der Java-Plattform ist das gemeinsame Konzept eines "virtuellen" Prozessors, der Programme ausführt, die in der Programmiersprache Java geschrieben sind. Insbesondere führt es den Code aus, der sich aus der Quellcodekompilierung ergibt , bekannt als Bytecode . Dieser "Prozessor" ist die Java Virtual Machine oder JVM (Java Virtual Machine), die für die Übersetzung ( Interpretation oder spontane Kompilierung ) des Bytecodes in native Anweisungen der Zielplattform verantwortlich ist. Dadurch kann dieselbe Java-Anwendung auf einer Vielzahl von Systemen mit unterschiedlichen Architekturen ausgeführt werden, sofern sie über eine angemessene Implementierung der JVM verfügt. Aus dieser Tatsache ist der berühmte Satz entstanden: „write once, run anywhere“ (write once, run anywhere). Bedingung ist, dass keine nativen Aufrufe oder plattformspezifischen Funktionen verwendet werden, und selbst dann ist eine echte Plattformunabhängigkeit nicht vollständig gewährleistet.
Beginnend mit der JRE-Version 1.2 enthält die Virtual-Machine-Implementierung von Sun einen JIT-Compiler (Just In Time). Anstelle der traditionellen Bytecode-Interpretation, die zu einer langsamen Anwendungsausführung führt, konvertiert das JIT auf diese Weise den Bytecode in nativen Code der Zielplattform. Diese zweite Codekompilierung ist eine Zeitstrafe, aber der resultierende native Code wird effizienter und schneller ausgeführt, als wenn er interpretiert würde. Andere dynamische Codekompilierungstechniken während der Laufzeit ermöglichen eine weitere Optimierung des Codes, wobei die Platte, die Java in Bezug auf seine Langsamkeit hinterlassen hat, hinter sich gelassen wird und die JVM in ihren neuesten Versionen so weit optimiert wurde, dass sie nicht mehr als langsame Plattform gilt in Bezug auf laufende Anwendungen.
Es kann jedoch nicht gesagt werden, dass Java Code mit maximaler Effizienz kompilieren und die Geschwindigkeitsvorteile von nativem Maschinencode nutzen kann. Obwohl Compiler immer fortschrittlicher werden, verfügen nicht alle Java-Bibliotheken über entsprechenden Maschinencode, der verwendet werden kann. Beispielsweise wird die „reflect“-Bibliothek, die es Java-Programmierern ermöglicht, Anweisungen zu untersuchen, die nur zur Laufzeit verfügbar sind, schlecht durch Maschinencode repräsentiert.
Java war nicht die erste Plattform, die auf dem Konzept einer virtuellen Maschine basierte, obwohl sie die am weitesten verbreitete ist. Die Verwendung virtueller Maschinen konzentrierte sich hauptsächlich auf die Verwendung von Emulatoren, um die Entwicklung von im Bau befindlicher Hardware oder Betriebssystemen zu unterstützen, aber die JVM wurde entwickelt, um vollständig in Software implementiert zu werden und sie gleichzeitig auf alle Arten von Geräten portierbar zu machen Hardware .
Java-Bibliotheken
In den meisten heutigen Betriebssystemen wird eine Reihe von Codes bereitgestellt, um die Programmieraufgabe zu vereinfachen. Dieser Code hat normalerweise die Form eines Satzes dynamischer Bibliotheken, die Anwendungen bei Bedarf aufrufen können. Die Java-Plattform soll jedoch unabhängig vom zugrunde liegenden Betriebssystem sein, sodass sich Anwendungen nicht auf systemabhängige Funktionen verlassen können. Die Java-Plattform stellt eine Reihe von Standardbibliotheken bereit, die viele der wiederverwendbaren Funktionen enthalten, die in heutigen Betriebssystemen verfügbar sind.
Java-Bibliotheken dienen drei Zwecken innerhalb der Java-Plattform. Wie andere Standardbibliotheken bieten sie dem Programmierer einen gut definierten Satz von Funktionen, um allgemeine Aufgaben auszuführen, wie z. B. die Handhabung von Elementlisten oder anspruchsvolle Operationen mit Zeichenfolgen. Darüber hinaus bieten die Bibliotheken eine abstrakte Schnittstelle für Aufgaben, die stark von der Hardware der Zielplattform und ihrem Betriebssystem abhängig sind. Aufgaben wie die Abwicklung von Netzwerkfunktionen oder der Zugriff auf Dateien hängen in der Regel stark von nein ab. Im obigen speziellen Fall implementieren die java.net- und java.io-Bibliotheken den nativen Code intern und stellen eine Standardschnittstelle für Java-Anwendungen bereit, um solche Funktionen auszuführen. Schließlich unterstützen nicht alle Plattformen alle Funktionen, die eine Java-Anwendung erwartet. In diesen Fällen können die Bibliotheken diese Funktionen entweder emulieren, indem sie alles verwenden, was verfügbar ist, oder einen Mechanismus anbieten, um zu überprüfen, ob eine bestimmte Funktionalität vorhanden ist.
Sprachen
Das Wort Java selbst bezieht sich normalerweise auf die Java-Programmiersprache , die für die Verwendung mit der Java-Plattform entwickelt wurde. Programmiersprachen liegen außerhalb des Bereichs einer „Plattform“, obwohl die Programmiersprache Java eine der grundlegenden Komponenten der Java-Plattform ist. Die Sprache selbst und die Laufzeitumgebung werden oft als eine Einheit betrachtet.
Allerdings wurde eine große Anzahl von Compilern für die Java Virtual Machine (JVM) außerhalb der Sun-Umgebung entwickelt. Einige dieser Sprachen sind:
Ähnliche Plattformen
Der Erfolg von Java und das Konzept und der Slogan „Write once, run anywhere“ haben zu Initiativen in die gleiche Richtung geführt. Der deutlichste Versuch ist die .NET -Plattform von Microsoft , die die meisten Konzepte und Innovationen von Java kopiert; Tatsächlich hat es eine Java-Implementierung namens Visual J# (früher bekannt als J++ ).
Referenzen
- ↑ https://www.oracle.com/java/technologies/javase/15-0-2-relnotes.html
- ^ "Aufbau und Stärkung der Java-Marke" . Java (auf Englisch) . 30. Juni 2005 . Abgerufen am 23.01.2021 . ( defekter Link verfügbar im Internetarchiv ; siehe Historie , erste und letzte Version ).
- ^ "Java SE 6-Dokumentation" . Orakel (auf Englisch) . Abgerufen am 23.01.2021 .