Liste der Java-APIs - List of Java APIs

Es gibt zwei Arten von Anwendungsprogrammierschnittstellen (APIs) für die Programmiersprache Java :

  • Die offizielle Kern-Java-API, enthalten in Android (Google), SE (OpenJDK und Oracle), MicroEJ. Diese Pakete (java.*-Pakete) sind die wichtigsten Java-Sprachpakete, was bedeutet, dass Programmierer, die die Java-Sprache verwenden, sie verwenden mussten, um die Java-Sprache sinnvoll nutzen zu können.
  • Optionale APIs, die separat heruntergeladen werden können. Die Spezifikation dieser APIs wird von vielen verschiedenen Organisationen weltweit definiert (Alljoyn, OSGi, Eclipse, JCP, ESR, etc.).

Im Folgenden finden Sie eine unvollständige Liste der Anwendungsprogrammierschnittstellen (APIs) für Java.

APIs

Name Akronym Beschreibung und Versionsgeschichte Verfügbar ab
Java Advanced Imaging JAI Eine Reihe von Schnittstellen, die ein High-Level- Programmiermodell unterstützen , mit dem Bilder einfach bearbeitet werden können.
Verein zur Standardisierung eingebetteter Plattformen ESR-Konsortium Hier
Java-Datenobjekte JDO Eine Spezifikation von Java - Objekt Persistenz .
Android-API Google Hier
JavaHilfe Ein erweiterbares Hilfesystem mit vollem Funktionsumfang, mit dem Sie Online-Hilfe in Applets, Komponenten, Anwendungen, Betriebssysteme und Geräte integrieren können. hier verfügbar
Java Media Framework JMF Eine API, die das Hinzufügen von Audio-, Video- und anderen zeitbasierten Medien zu Java-Anwendungen und -Applets ermöglicht.
Java-Namens- und Verzeichnisschnittstelle JNDI Eine API für Verzeichnisdienste .
Java-Persistenz-API JPA Eine Spezifikation für objektrelationales Mapping . JSR 338
Java-Sprach-API JSAPI Diese API ermöglicht Sprachsynthese und Spracherkennung .
Java 3D J3D Eine auf Szenendiagrammen basierende 3D- API. hier verfügbar
Java OpenGL JOGL Eine Wrapper- Bibliothek für OpenGL . hier verfügbar
Java-USB für Windows (keiner) Eine USB-Kommunikation von Java-Anwendungen hier verfügbar
RestFB (keiner) Facebook-API-Wrapper in Java. hier verfügbar
Twitter4j (keiner) Java-Bibliothek für die Twitter-API hier verfügbar
Discord Java-API JDA Java-Bibliothek für die Discord-API hier verfügbar
Name Akronym Java-Paket (e), die die API enthalten
JavaBeans-Aktivierungs-Framework JAF javax.aktivierung
JavaMail (keiner) javax.mail
Java-Nachrichtendienst JMS javax.jms
JavaServer-Gesichter JSF javax.faces
Name Akronym Verfügbar ab
Java API für XML-basiertes RPC JAX-RPC hier verfügbar
XQuery-API für Java XQJ hier und hier
Name Akronym Verfügbar ab
Verbundene eingeschränkte Gerätekonfiguration CLDC Referenz - Implementierung ist hier verfügbar
Java-Telefonie-API JTAPI hier verfügbar
STM32 Java-Technologie STM32Java hier verfügbar
Embedded MicroEJ-Plattform MikroEJ hier verfügbar

Es folgt eine sehr unvollständige Liste, da die Anzahl der für die Java-Plattform verfügbaren APIs überwältigend ist.

Rich-Client-Plattformen
Office_konforme Bibliotheken
Kompression
JSON
Spiel-Engines
Echtzeitbibliotheken

Real Time Java ist ein Sammelbegriff für eine Kombination von Technologien, die es Programmierern ermöglicht, Programme zu schreiben, die den Anforderungen von Echtzeitsystemen in der Programmiersprache Java entsprechen.

Javas ausgeklügeltes Speichermanagement, native Unterstützung für Threading und Parallelität, Typsicherheit und relative Einfachheit haben eine Nachfrage nach Java in vielen Bereichen geschaffen. Seine Fähigkeiten wurden verbessert, um Echtzeit-Berechnungsanforderungen zu unterstützen:

  • Java unterstützt ein strikt prioritätsbasiertes Threading-Modell.
  • Da Java-Threads Prioritäten unterstützen, unterstützen Java-Sperrmechanismen Techniken zur Vermeidung von Prioritätsinversionen, wie z. B. die Prioritätsvererbung oder das Protokoll der Prioritätsobergrenze.

Um typische Echtzeitschwierigkeiten zu überwinden, hat die Java Community eine Spezifikation für Echtzeit-Java, JSR001, eingeführt. Eine Reihe von Implementierungen der resultierenden Real-Time Specification for Java (RTSJ) sind entstanden, darunter eine Referenzimplementierung von Timesys, IBMs WebSphere Real Time, Sun Microsystems Java SE Real-Time Systems, [1] Aonix PERC oder JamaicaVM von aicas.

Das RTSJ ging auf die kritischen Probleme ein, indem es eine Mindestspezifikation (nur zwei) für das Threading-Modell vorschrieb (und das Einstecken anderer Modelle in die VM erlaubte) und indem es Speicherbereiche bereitstellte, die nicht der Garbage Collection unterliegen, zusammen mit Threads, die werden vom Garbage Collector nicht vorweggenommen. Diese Bereiche werden stattdessen mithilfe der regionenbasierten Speicherverwaltung verwaltet.

Echtzeitspezifikation für Java

Die Real-Time Specification for Java (RTSJ) ist eine Reihe von Schnittstellen und Verhaltensverbesserungen, die eine Computerprogrammierung in Echtzeit in der Programmiersprache Java ermöglichen. RTSJ 1.0 wurde als JSR 1 im Rahmen des Java Community Process entwickelt, der den neuen Standard im November 2001 genehmigte. RTSJ 2.0 wird unter JSR 282 entwickelt. Eine Entwurfsversion ist auf der JSR 282 JCP Page verfügbar. Weitere Informationen finden Sie unter RTSJ 2.0

Windowing-Bibliotheken

Die Fensterbibliothek ist ein Satz von Klassen, die in der C++-API der Streams Processing Language (SPL) Runtime und der SPL Java™ Operator API verfügbar sind. Die Bibliothek wird verwendet, um primitive Operatoren zu implementieren, die Fenster benötigen, die der SPL-Fenstersemantik folgen. Die Verwendung der Fensterbibliothek bietet eine konsistente Fensterrichtliniensemantik über Operatoren hinweg und vereinfacht die Operatorimplementierung.

SPL bietet sowohl Taumel- als auch Schiebefenster an. Beide Fenstertypen behalten alle eingehenden Daten im Speicher, bis ihre Tupel-Eviction-Policy ausgelöst wird. Verwenden Sie die SPL-Unterstützung für Fenster, wenn die vom primitiven Operator benötigte Funktionalität unter Verwendung der von SPL-Fensterkonstrukten bereitgestellten Semantik erstellt werden kann.

Ein Beispieloperator aus dem SPL Standard Toolkit, der die Windowing-Bibliothek und -Syntax verwendet, ist der AggregateOperator. Ein Beispieloperator, der kürzlich empfangene Tupel puffert, aber nicht die Fensterbibliothek und Syntax verwendet, ist der DeDuplicateOperator. Diese Aktion tritt auf, weil dieser Operator eine andere Räumungs- und Triggersemantik hat als die von SPL bereitgestellten. Dieser Operator muss nur eindeutige Tupel verwalten und verwirft alle wiederholten Tupel, die innerhalb eines Zeitfensters empfangen werden.

Mit der Windowing-Bibliothek können Entwickler verschiedene Eviction- und Trigger-Richtlinien angeben, aber die Ereignisbehandlungsaktionen unabhängig von den Fensterrichtliniendetails implementieren. Es gibt einige Unterschiede bei der Implementierung primitiver Operatoren in C++ und Java, die die SPL-Fensterklausel nutzen.

In der C++-Implementierung sind Entwickler nicht verpflichtet, die Fensterbibliothek zu verwenden (die bevorzugte Praxis ist die Verwendung von Bibliotheken). Es steht ihnen frei, die SPL Operator Code Generation API zu verwenden, nur um die angegebene Fensterrichtlinie für eine bestimmte Operatorinstanz abzurufen. Anschließend können sie mit anderen Containern Code generieren. Darüber hinaus können Entwickler während der Codegenerierung nach gültigen Fensterkonfigurationen suchen.

In der Java-Implementierung müssen Entwickler die Fensterbibliothek verwenden. Diese Aktion kann erreicht werden, indem eine Klasse registriert wird, die implementiert com.ibm.streams.operator.window.StreamWindowListener<T>, die Ereignisse behandelt, die von einem Fenster generiert werden (com.ibm.streams.operator.window.StreamWindow<T>). Diese Verwendung ist erforderlich, da Java-Operatoren nicht auf der Codegenerierung basieren. Als Ergebnis werden Fenster automatisch von der Laufzeit verwaltet, um die SPL-Fenstersemantik zu gewährleisten. Entwickler können während der Laufzeit nach gültigen Fensterkonfigurationen suchen, indem sie die Fensterrichtlinie überprüfen, die einem bestimmten Eingabeport zugeordnet ist.

Physikbibliotheken
  • JBox2D
  • JBullet
  • dyn4j

Siehe auch

Anmerkungen

Externe Links