Java -Plattform, Standard Edition

Java -Plattform, Standard Edition (Java se) ist ein Computerplattform Für die Entwicklung und Bereitstellung von tragbarer Code zum Desktop und Server Umgebungen.[1] Java SE war früher als bekannt als Java 2 Plattform, Standard Edition (J2SE).

Die Plattform verwendet Java Programmiersprache und ist Teil der Java-Software-Plattform Familie. Java SE definiert eine Reihe von allgemeinerzwecker Ebene Apis-wie zum Beispiel Java apis für die Java -Klassenbibliothek- und schließt auch die ein Java -Sprachspezifikation und die Java Virtual Machine Spezifikation.[2] OpenJDK ist der Beamte Referenzimplementierung Seit Version 7.[3][4][5]

Nomenklatur, Standards und Spezifikationen

Die Plattform war bekannt als als Java 2 Plattform, Standard Edition oder J2SE Aus Version 1.2, bis der Name in geändert wurde in Java -Plattform, Standard Edition oder Java se in Version 1.5. Das "SE" wird verwendet, um die Basisplattform von der Enterprise Edition zu unterscheiden (Java ee) und Micro Edition (Java mich) Plattformen. Das "2" sollte ursprünglich die in Version 1.2 eingeführten Hauptänderungen hervorheben, wurde jedoch in Version 1.6 entfernt. Die Namenskonvention wurde mehrmals über die verändert Java -Versionsgeschichte. Ab J2SE 1.4 (Merlin) wurde Java SE unter dem entwickelt Java Community -Prozess, die Beschreibungen der vorgeschlagenen und endgültigen Spezifikationen für die Java -Plattform erzeugt Java -Spezifikationsanfragen (JSR).[6] JSR 59 war die Dachspezifikation für J2SE 1.4 und JSR 176 angegeben J2SE 5.0 (Tiger). Java SE 6 (Mustang) wurde unter JSR 270 freigelassen.

Java -Plattform, Enterprise Edition (Java ee) ist eine verwandte Spezifikation, die alle enthält Klassen in Java SE plus eine Zahl, die für Programme, die angelegt werden, nützlicher sind Server im Gegensatz zu Arbeitsstationen.

Java -Plattform, Micro Edition (Java ME) ist eine verwandte Spezifikation, die eine zertifizierte Sammlung von Java-APIs für die Entwicklung von Software für kleine, ressourcenbeschränkte Geräte wie z. Handys, PDAs und Set-Top-Boxen.

Das Java Laufzeitumgebung (JRE) und Java Development Kit (JDK) Sind die tatsächlichen Dateien auf einem Computer heruntergeladen und installiert, um Java -Programme auszuführen oder zu entwickeln.

Allzweckpakete

Java.lang

Das Java -Paket Java.lang enthält grundlegende Klassen und Schnittstellen eng mit der Sprache gebunden und Laufzeit System. Dies schließt die Wurzelklassen ein, die die bilden Klassenhierarchie, Typen, die an die Sprachdefinition gebunden sind, grundlegend Ausnahmen, mathematische Funktionen, Fäden, Sicherheitsfunktionen sowie einige Informationen über das zugrunde liegende native System. Dieses Paket enthält 22 von 32 Fehler Klassen in JDK 6.

Die Hauptklassen und Schnittstellen in Java.lang sind:

  • Objekt - Die Klasse, die die Wurzel jeder Klassenhierarchie ist.
  • Auflauf - die Basisklasse für Aufzählungsklassen (Ab J2SE 5.0).
  • Klasse - Die Klasse, die die Wurzel der Java ist Betrachtung System.
  • Throwierbar - Die Klasse, die die Basisklasse der Ausnahmeklassenhierarchie ist.
  • Fehler, Ausnahme, und RunTimeException - Die Basisklassen für jeden Ausnahmeart.
  • Faden - Die Klasse, die Operationen auf Threads ermöglicht.
  • Saite - die Klasse für Saiten und String -Literale.
  • StringBuffer und StringBuilder - Kurse für die Aufführung String Manipulation (StringBuilder Ab J2SE 5.0).
  • Vergleichbar - Die Schnittstelle, die den generischen Vergleich und die Reihenfolge von Objekten ermöglicht (ab J2SE 1.2).
  • Wiederholbar - Die Schnittstelle, die eine generische Iteration mit dem ermöglicht erweitert zum Schleife (Ab J2SE 5.0).
  • Klassenloader, Verfahren, Laufzeit, Sicherheitsmanager, und System - Klassen, die "Systemvorgänge" liefern, die die verwalten dynamische Belastung der Klassen, Schöpfung von externem Prozesse, Hostumweltanfragen wie die Tageszeit und die Durchsetzung von Sicherheitsrichtlinien.
  • Mathematik und Striktmath - Klassen, die grundlegende mathematische Funktionen bieten, z. Sinus, Kosinus, und Quadratwurzel (Striktmath Ab J2SE 1.3).
  • Das Primitive Wrapper -Klassen das Kapiteller primitive Typen wie Objekte.
  • Die grundlegenden Ausnahmeklassen für Sprachebene und andere gemeinsame Ausnahmen.

Klassen in Java.lang werden automatisch in jeden importiert Quelldatei.

java.lang.ref

Das java.lang.ref Paket bietet flexiblere Arten von Verweise als ansonsten verfügbar, was eine begrenzte Wechselwirkung zwischen der Anwendung und der ermöglicht Java virtuelle Maschine (JVM) Müllsammler. Es ist ein wichtiges Paket, das für die Sprachdesigner zentral genug ist, um ihm einen Namen zu geben, der mit "Java.lang" beginnt, aber es ist etwas speziell und nicht von vielen Entwicklern verwendet. Dieses Paket wurde in J2SE 1.2 hinzugefügt.

Java verfügt über ein ausdrucksstarkes Referenzsystem und ermöglicht ein besonderes Verhalten für die Müllsammlung. Eine normale Referenz in Java ist als "starke Referenz" bekannt. Das java.lang.ref Paket definiert drei weitere Arten von Referenzen - auf dem Boden, schwachund Phantomreferenzen. Jede Referenztyp ist für eine bestimmte Verwendung ausgelegt.

  • A Weiche kann verwendet werden, um a zu implementieren Zwischenspeicher. Ein Objekt, das nicht durch eine starke Referenz (dh nicht stark erreichbar ist) erreichbar ist, sondern durch eine weiche Referenz bezeichnet wird, wird als "sanft erreichbar" bezeichnet. Ein sanft erreichbares Objekt kann nach Ermessen des Müllsammlers Müll erhoben werden. Dies bedeutet im Allgemeinen, dass sanft erreichbare Objekte nur Müll gesammelt werden, wenn der freie Speicher niedrig ist - aber dies liegt wieder im Ermessen des Müllsammlers. Semantisch bedeutet eine weiche Referenz: "Behalte dieses Objekt, wenn nichts anderes es verweist, es sei denn, der Speicher ist erforderlich."
  • A Schwachreferenz wird verwendet, um schwache Karten zu implementieren. Ein Objekt, das nicht stark oder sanft erreichbar ist, sondern durch eine schwache Referenz bezeichnet wird. "schwach erreichbar". Ein schwach erreichbares Objekt ist im nächsten Sammelzyklus Müll gesammelt. Dieses Verhalten wird in der Klasse verwendet Java.util.WeakhashMap. Eine schwache Karte ermöglicht es dem Programmierer, Schlüssel-/Wertpaare in die Karte zu setzen und sich keine Sorgen darüber zu machen, dass die Objekte Speicher annehmen, wenn der Schlüssel nirgendwo anders erreichbar ist. Eine weitere mögliche Anwendung schwacher Referenzen ist die String -Praktikumspool. Semantisch bedeutet eine schwache Referenz "Entfernen Sie dieses Objekt, wenn nichts anderes bei der nächsten Müllsammlung verweist".
  • A Phantomreferenz wird verwendet, um Objekte zu referenzieren, die für die Müllsammlung markiert wurden und gewesen sind abgeschlossen, aber noch nicht zurückgefordert worden. Ein Objekt, das nicht stark, leise oder schwach erreichbar ist, sondern durch eine Phantomreferenz bezeichnet wird, wird als "Phantom erreichbar" bezeichnet. Dies ermöglicht eine flexiblere Reinigung als mit dem Abschlussmechanismus allein möglich. Semantisch bedeutet eine Phantomreferenz "dieses Objekt wird nicht mehr benötigt und wurde zur Vorbereitung auf die gesammelte Vorbereitung abgeschlossen."

Jeder dieser Referenztypen erweitert die Bezug Klasse, der die liefert erhalten() Methode um einen starken Hinweis auf das Referenzobjekt zurückzugeben (oder Null Wenn die Referenz gelöscht wurde oder wenn der Referenztyp Phantom ist) und die klar() Methode zum Löschen der Referenz.

Das java.lang.ref definiert auch die Klasse Referenzqueue, die in jeder der oben diskutierten Anwendungen verwendet werden kann, um Objekte zu verfolgen, die den Referenztyp geändert haben. Wenn ein Bezug wird erstellt, es ist optional mit einer Referenzwarteschlange registriert. Die Anwendung befragt die Referenzwarteschlange, um Referenzen zu erhalten, die den Erreichbarkeitszustand geändert haben.

java.lang.reflect

Betrachtung ist ein Bestandteil der Java API, mit der Java -Code die Java -Komponenten zur Laufzeit untersuchen und "reflektieren" und die reflektierten Mitglieder verwenden können. Klassen in der java.lang.reflect Paket zusammen mit Java.lang.Class und java.lang.package Anwendungen wie beispielsweise Anwendungen aufnehmen Debugger, Dolmetscher, Objektinspektoren, Klassenbrowser, und Dienste wie Objekt Serialisierung und Javabeans Das erfordert Zugang zu den öffentlichen Mitgliedern eines Zielobjekts (basierend auf seiner Laufzeitklasse) oder den von einer bestimmten Klasse deklarierten Mitgliedern. Dieses Paket wurde in JDK 1.1 hinzugefügt.

Reflexion wird verwendet, um Klassen zu instanziieren und Methoden mithilfe ihrer Namen aufzurufen, ein Konzept, das dynamische Programmierung ermöglicht. Klassen, Schnittstellen, Methoden, Felder, und Konstrukteure kann alle zur Laufzeit entdeckt und verwendet werden. Reflexion wird von gestützt von Metadaten Dass die JVM über das Programm hat.

Techniken

Es gibt grundlegende Techniken, die an der Reflexion beteiligt sind:

  • Entdeckung - Dies beinhaltet die Einnahme eines Objekts oder eine Klasse und die Entdeckung der Mitglieder, Superklassen, implementierten Schnittstellen und dann möglicherweise mit den entdeckten Elementen.
  • Verwenden mit Namen - Beinhaltet die Beginn des symbolischen Namens eines Elements und die Verwendung des benannten Elements.
Entdeckung

Die Entdeckung beginnt normalerweise mit einem Objekt und ruft das auf Object.getClass () Methode, um das Objekt zu erhalten Klasse. Das Klasse Das Objekt verfügt über verschiedene Methoden, um den Inhalt der Klasse zu entdecken, beispielsweise:

  • GetMethods () - Gibt eine Reihe von einer Reihe zurück Methode Objekte, die alle öffentlichen Methoden der Klasse oder Schnittstelle darstellen
  • getConstructors () - Gibt eine Reihe von einer Reihe zurück Konstrukteur Objekte, die alle öffentlichen Konstrukteure der Klasse darstellen
  • getfields () - Gibt eine Reihe von einer Reihe zurück Aufstellen Objekte, die alle öffentlichen Felder der Klasse oder Schnittstelle darstellen
  • getClasss () - Gibt eine Reihe von einer Reihe zurück Klasse Objekte, die alle öffentlichen Klassen und Schnittstellen repräsentieren, die Mitglieder sind (z. innere Klassen) der Klasse oder Schnittstelle
  • GetuperClass () - Gibt die zurück Klasse Objekt, das die Superklasse der Klasse oder Schnittstelle darstellt (Null wird für Schnittstellen zurückgegeben)
  • GetInterfaces () - Gibt eine Reihe von einer Reihe zurück Klasse Objekte, die alle Schnittstellen darstellen, die von der Klasse oder Schnittstelle implementiert werden
Verwenden Sie mit Namen

Das Klasse Objekt kann entweder durch Entdeckung erhalten werden, indem das verwendet wird Klasse Literal (z.B. Myclass.class) oder unter Verwendung des Namens der Klasse (z. Class.forname ("mypackage.myclass")). Mit einer Klasse Objekt, Mitglied Methode, Konstrukteur, oder Aufstellen Objekte können mit dem symbolischen Namen des Mitglieds erhalten werden. Zum Beispiel:

  • GetMethod ("MethodName", Klasse ...) - Gibt die zurück Methode Objekt, das die öffentliche Methode mit dem Namen "MethodName" der Klasse oder Schnittstelle darstellt, die die von der angegebenen Parameter akzeptiert Klasse... Parameter.
  • GetConstructor (Klasse ...) - Gibt die zurück Konstrukteur Objekt, das den öffentlichen Konstruktor der Klasse darstellt, der die von der angegebenen Parameter akzeptiert Klasse... Parameter.
  • Getfield ("Fieldname") - Gibt die zurück Aufstellen Objekt, das das öffentliche Feld mit dem Namen "Feldname" der Klasse oder Schnittstelle darstellt.

Methode, Konstrukteur, und Aufstellen Objekte können verwendet werden, um dynamisch auf das dargelegte Mitglied der Klasse zugreifen zu können. Zum Beispiel:

  • Field.get (Objekt) - Gibt an Objekt enthält den Wert des Feldes aus der Instanz des übergebenen Objekts erhalten(). (Wenn die Aufstellen Objekt repräsentiert ein statisches Feld, dann das Objekt Der Parameter wird ignoriert und kann sein Null.))
  • Methode.invoke (Objekt, Objekt ...) - Gibt an Objekt Das Ergebnis des Aufrufens der Methode für die Instanz des ersten Objekt Parameter übergeben an aufrufen(). Der Rest Objekt... Parameter werden an die Methode übergeben. (Wenn die Methode Objekt repräsentiert a Statische Methode dann der erste Objekt Der Parameter wird ignoriert und kann sein Null.))
  • Constructor.Newinstance (Objekt ...) - Gibt die Neue zurück Objekt Instanz vom Aufrufen des Konstruktors. Das Objekt... Parameter werden an den Konstruktor übergeben. (Beachten Sie, dass der parameterlose Konstruktor für eine Klasse auch durch Anrufe aufgerufen werden kann newinstance ().))
Arrays und Stellvertreter

Das java.lang.reflect Paket bietet auch ein Array Klasse, die statische Methoden zum Erstellen und Manipulieren von Array -Objekten enthält, und seit J2SE 1.3 a Proxy Klasse, die die dynamische Erstellung von Proxy -Klassen unterstützt, die bestimmte Schnittstellen implementieren.

Die Implementierung von a Proxy Die Klasse wird durch ein mitgeliefertes Objekt bereitgestellt, das die implementiert InvocationHandler Schnittstelle. Das InvocationHandler's aufrufen (Objekt, Methode, Objekt []) Die Methode ist für jede auf dem Proxy -Objekt aufgerufene Methode aufgerufen - der erste Parameter ist das Proxy -Objekt, der zweite Parameter ist das Methode Objekt, das die Methode aus der vom Proxy implementierten Schnittstelle darstellt, und der dritte Parameter ist das an die Schnittstellenmethode übergebene Parameter. Das aufrufen() Methode gibt an ein Objekt Ergebnis, das das Ergebnis enthält, das in den Code zurückgegeben wurde, der die Proxy -Schnittstellenmethode bezeichnete.

Java.io

Das Java.io Paket enthält Klassen, die unterstützen Eingang und Ausgabe. Die Klassen im Paket sind in erster Linie streamorientiert; Eine Klasse für jedoch Zufallszugriff Dateien wird auch bereitgestellt. Die zentralen Klassen im Paket sind Eingabestrom und Ausgabestrom, welche sind abstrakt Basisklassen für das Lesen und Schreiben von Basis Byteströme, beziehungsweise. Die zugehörigen Klassen Leser und Schriftsteller sind abstrakte Basisklassen zum Lesen und Schreiben von Charakter Streams jeweils. Das Paket verfügt außerdem über einige verschiedene Klassen, um Interaktionen mit dem Host zu unterstützen Dateisystem.

Ströme

Die Stream -Klassen folgen der Dekorateurmuster Durch Erweiterung der Basis -Unterklasse, um den Stream -Klassen Funktionen hinzuzufügen. Unterklassen der Basisstromklassen werden typischerweise nach einem der folgenden Attribute benannt:

  • die Quelle/das Ziel der Stream -Daten
  • Die Art der Daten, die aus dem Stream geschrieben wurden/lesen
  • Zusätzliche Verarbeitung oder Filterung, die in den Stream -Daten durchgeführt wird

Die Stream -Unterklassen werden mit der Benennung benannt Muster Xxxstreamtype wo Xxx ist der Name, der das Feature beschreibt und Streamtype ist einer von Eingabestrom, Ausgabestrom, Leser, oder Schriftsteller.

Die folgende Tabelle zeigt die Quellen/Ziele, die direkt von der unterstützt werden Java.io Paket:

Zielort Name Streamtypen In/out Klassen
Byte Array (Byte[]) Bytearray Byte in, raus BytearrayInputStream, BytearrayoutputStream
verkohlen Array (verkohlen[]) Chararray verkohlen in, raus ChararrayReader, Chararraywriter
Datei Datei Byte, verkohlen in, raus FileInputStream, FileOutputStream, Filerader, Fileschreiber
Saite (StringBuffer) Saite verkohlen in, raus StringReader, StringWriter
Faden (Faden) Leitete Byte, verkohlen in, raus PipedInputStream, PipeDoutputStream, PipeDreader, Leitschreiber

Andere Standardbibliothekspakete bieten Stream -Implementierungen für andere Ziele wie die Eingabestrom zurückgegeben von der java.net.socket.getInputStream () Methode oder die Java ee javax.servlet.servletoutputStream Klasse.

Datentyphandhabung und -verarbeitung oder Filterung von Stream -Daten werden über den Stream erreicht Filter. Die Filterklassen akzeptieren alle ein anderes kompatibles Stream -Objekt als Parameter für den Konstruktor und schmücken Der geschlossene Strom mit zusätzlichen Merkmalen. Filter werden erstellt, indem eine der Basisfilterklassen erweitert wird FilterInputStream, FilteroutputStream, Filterreader, oder Filterwriter.

Das Leser und Schriftsteller Die Klassen sind wirklich nur Byte -Streams mit zusätzlicher Verarbeitung, die im Datenstrom durchgeführt werden, um die Bytes in Zeichen umzuwandeln. Sie verwenden die Standardeinstellung Zeichenkodierung für die Plattform, die ab J2SE 5.0 durch die dargestellt wird Charset zurückgegeben von der java.nio.charset.charset.defaultcharset () Statische Methode. Das InputStreamReader Klasse konvertiert ein Eingabestrom zu einem Leser und die Ausgangsstreamwriter Klasse konvertiert ein Ausgabestrom zu einem Schriftsteller. Beide Klassen verfügen über Konstruktoren, die die Verwendung der zu verwendenden Zeichenkodierung unterstützen. Wenn keine Codierung angegeben ist, verwendet das Programm die Standardcodierung für die Plattform.

Die folgende Tabelle zeigt die anderen Prozesse und Filter, dass die Java.io Paket direkt unterstützt. Alle diese Klassen erweitern die entsprechenden Filter Klasse.

Betrieb Name Streamtypen In/out Klassen
Pufferung Gepuffert Byte, verkohlen in, raus BufferedInputStream, BufferedOutputStream, BufferedReader, Pufferwriter
"Back" der letzte Wert Rückschlag Byte, verkohlen in RushbackInputStream, Pushbackreader
lesen Schreiben primitive Typen Daten Byte in, raus DataNputStream, DataOutputStream
Objektserialisierung (Lesen/Schreiben von Objekten) Objekt Byte in, raus ObjectInputStream, ObjectOutputStream

Zufallszugriff

Das RandomAccessfile Klasse unterstützt Zufallszugriff Lesen und Schreiben von Dateien. Die Klasse verwendet a Dateizeiger Dies stellt ein Byte-Offset in der Datei für den nächsten Lese- oder Schreibvorgang dar. Der Dateizeiger wird implizit durch Lesen oder Schreiben und explizit durch Aufrufen des suche (lang) oder SkipBytes (int) Methoden. Die aktuelle Position des Dateizeigers wird von der zurückgegeben getFilepointer () Methode.

Dateisystem

Das Datei Klasse repräsentiert a Datei oder Verzeichnis Weg in einem Dateisystem. Datei Objekte unterstützen die Erstellung, Löschung und Umbenennung von Dateien und Verzeichnissen sowie die Manipulation von Dateiattribute wie zum Beispiel schreibgeschützt und Letzter modifizierter Zeitstempel. Datei Objekte, die Verzeichnisse darstellen, können verwendet werden, um eine Liste aller enthaltenen Dateien und Verzeichnisse zu erhalten.

Das FEMPERSCRIPTOR Klasse ist a Dateideskriptor Das repräsentiert eine Quelle oder eine Spüle (Ziel) von Bytes. Normalerweise ist dies eine Datei, kann aber auch a sein Konsole oder Netzwerkbuchse. FEMPERSCRIPTOR Objekte werden zum Erstellen verwendet Datei Ströme. Sie werden von erhalten Datei Ströme und Java.net Sockets und Datagramm -Sockeln.

Java.nio

In J2SE 1.4 das Paket Java.nio (NIO oder nicht blockierende I/O) wurde zur Unterstützung hinzugefügt Speicher-abgebildete I/O, erleichtert I/o Operationen näher an der zugrunde liegenden Hardware mit manchmal dramatisch besserer Leistung. Das Java.nio Das Paket bietet Unterstützung für eine Reihe von Puffertypen. Das Unterpackungsbereich java.nio.charset Bietet Unterstützung für verschiedene Charaktercodierungen Für Zeichendaten. Das Unterpackungsbereich java.nio.channels Bietet Unterstützung für Kanäle, die Verbindungen zu Entitäten darstellen, die in der Lage sind, E/A -Operationen wie Dateien und Sockel auszuführen. Das java.nio.channels Das Paket unterstützt auch die feinkörnige Sperre von Dateien.

Java.math

Das Java.math Paketunterstützung Multipkrezisionsarithmetik (einschließlich modularer arithmetischer Operationen) und liefert Multiprezisions -Primzahl -Generatoren, die für die kryptografische Schlüsselgenerierung verwendet werden. Die Hauptklassen des Pakets sind:

  • Bigdecimal -Bietet willkürliche Präzisionsnummern. Bigdecimal gibt dem Benutzer die Kontrolle über das Rundungsverhalten durch RoundingMode.
  • Biginteger -Bietet willkürliche Zählerzahlen. Operationen auf Biginteger unterlassen Sie Überlauf oder Präzision verlieren. Zusätzlich zu den Standard -arithmetischen Operationen bietet sie Modulararithmetik, GCD Berechnung, Primalitätstest, Primzahl Generation, bisschen Manipulation und andere verschiedene Operationen.
  • Mathcontext - Kapitulieren Sie die Kontexteinstellungen, die bestimmte Regeln für numerische Operatoren beschreiben.
  • RoundingMode - Eine Aufzählung, die acht Rundungsverhalten liefert.

Java.net

Das Java.net Das Paket bietet spezielle IO -Routinen für Netzwerke, die zulässt Http Anfragen sowie andere gemeinsame Transaktionen.

java.text

Das java.text Das Paket implementiert Parsing-Routinen für Zeichenfolgen und unterstützt verschiedene Menschen mit menschlich lesbaren Sprachen und lokalspezifischem Parsen.

Java.util

Datenstrukturen dass aggregierte Objekte im Mittelpunkt der stehen Java.util Paket. Im Paket enthalten ist das Sammlungen API, eine organisierte Datenstrukturhierarchie, die stark von der beeinflusst wird Designmuster Überlegungen.

Spezielle Zweckpakete

Java.Applet

Zur Unterstützung erstellt Java Applet Schöpfung, die Java.Applet Durch das Paket können Anwendungen über ein Netzwerk heruntergeladen und in einer bewachten Sandbox ausgeführt werden. Sicherheitsbeschränkungen können leicht auf die Sandkasten auferlegt werden. Ein Entwickler kann beispielsweise a anwenden Digitale Unterschrift zu einem Applet, wodurch es als sicher bezeichnet wird. Auf diese Weise kann der Benutzer der Applet -Berechtigung zur Durchführung von eingeschränkten Vorgängen (z. B. Zugriff auf die lokale Festplatte) erteilen und einige oder alle Sandbox -Beschränkungen entfernt. Digitale Zertifikate werden von ausgestellt von Zertifikatbehörden.

Java.Beans

Inbegriffen in Java.Beans Paket sind verschiedene Klassen für die Entwicklung und Manipulation von Bohnen, wiederverwendbare Komponenten, die durch die definiert sind Javabeans Architektur. Die Architektur bietet Mechanismen zur Manipulation von Eigenschaften von Komponenten und Entlassung von Ereignissen, wenn sich diese Eigenschaften ändern.

Die APIs in Java.Beans sind für ein Bohnenbearbeitungswerkzeug verwendet, in dem Bohnen kombiniert, angepasst und manipuliert werden können. Eine Art von Bean -Editor ist ein GUI Designer in einem integrierte Entwicklungsumgebung.

Java.awt

Das Java.awtoder abstraktes Fenster -Toolkit bietet Zugriff auf einen grundlegenden Satz von GUI Widgets basieren auf dem Widget -Set der zugrunde liegenden nativen Plattform, dem Kern des GUI -Event -Subsystems und der Schnittstelle zwischen dem nativen Fenstersystem und der Java -Anwendung. Es bietet auch mehrere Basis Layoutmanager, ein DataTransfer -Paket zur Verwendung mit dem Zwischenablage und Ziehen und Drop, die Schnittstelle zu Eingabegeräte wie zum Beispiel Mäuse und Tastaturensowie Zugang zum Zugang zur System Tray über unterstützende Systeme. Dieses Paket zusammen mit Javax.swing Enthält die größte Anzahl von Enums (insgesamt 7) in JDK 6.

Java.rmi

Das Java.rmi Paket bietet Aufruf von Java Remote -Methode zu unterstützen Remote -Verfahrensanrufe Zwischen zwei in verschiedenen Java -Anwendungen ausgeführten Java -Anwendungen JVMS.

Java.Security

Die Unterstützung für die Sicherheit, einschließlich des Algorithmus zur Nachrichtendigest, ist in der enthalten Java.Security Paket.

Java.sql

Eine Implementierung der JDBC API (verwendet zum Zugriff Sql Datenbanken) ist in die gruppiert Java.sql Paket.

javax.rmi

Das javax.rmi Das Paket unterstützt die Remote -Kommunikation zwischen Anwendungen unter Verwendung des RMI Over IIOP -Protokolls. Dieses Protokoll kombiniert RMI- und CORBA -Funktionen.

Java SE Core Technologies - CORBA / RMI -IIIP

Javax.swing

Schwingen ist eine Sammlung von Routinen, die auf bauen Java.awt eine Plattformunabhängige bereitzustellen Widget Toolkit. Javax.swing Verwendet die 2D -Zeichnungsroutinen, um die Benutzeroberflächenkomponenten zu rendern, anstatt sich auf den zugrunde liegenden Native zu verlassen Betriebssystem GUI -Unterstützung.

Dieses Paket enthält die größte Anzahl von Klassen (insgesamt 133) in JDK 6. Dieses Paket zusammen mit Java.awt Enthält auch die größte Anzahl von Enums (insgesamt 7) in JDK 6. Es unterstützt steckbare Aussehen und Gefühl (PLAFs), so dass Widgets in der GUI diejenigen aus dem zugrunde liegenden nativen System nachahmen können. Entwurfsmuster durchdringen das System, insbesondere eine Modifikation der Model View Controller Muster, das die lockert Kupplung zwischen Funktion und Aussehen. Eine Inkonsistenz ist, dass (ab J2SE 1.3) Schriftarten vom zugrunde liegenden nativen System gezogen werden und nicht von Java, um die Textträgbarkeit zu begrenzen. Es gibt Problemumgehungen wie die Verwendung von Bitmap -Schriftarten. Im Allgemeinen werden "Layouts" verwendet und halten Elemente in einer ästhetisch konsistenten GUI über Plattformen hinweg.

javax.swing.text.html.parser

Das javax.swing.text.html.parser Das Paket bietet den Fehler toleranten HTML -Parser, der zum Schreiben verschiedener Webbrowser und Webbots verwendet wird.

javax.xml.bind.annotation

Das javax.xml.bind.annotation Das Paket enthält die größte Anzahl von Annotationstypen (insgesamt 30) in JDK 6. Es definiert Annotationen zum Anpassen von Java -Programmelementen an XML -Schema -Mapping.

OMG -Pakete

org.omg.corba

Das org.omg.corba Das Paket unterstützt die Remote -Kommunikation zwischen Anwendungen mit dem Allgemeines Inter-ORB-Protokoll und unterstützt andere Merkmale der Maklerarchitektur der gemeinsamen Objektanfragen. Gleich wie RMI und Rmi-iiopDieses Paket dient zum Aufrufen von Remote -Methoden von Objekten auf anderen virtuellen Maschinen (normalerweise über das Netzwerk).

Dieses Paket enthält die größte Anzahl von Ausnahme Klassen (insgesamt 45) in JDK 6. Aus allen Kommunikationsmöglichkeiten ist CORBA zwischen verschiedenen Sprachen tragbar; Dies kommt jedoch mehr Komplexität.

Diese Pakete wurden in Java 9 veraltet und von Java 11 entfernt.[7]

org.omg.portableInterceptor

Das org.omg.portableInterceptor Das Paket enthält die größte Anzahl von Schnittstellen (insgesamt 39) in JDK 6. Es bietet einen Mechanismus zum Registrieren von Orb -Haken, über die Orb -Dienste den normalen Ausführungsfluss der Kugel abfangen.

Sicherheit

Es wurden mehrere kritische Sicherheitslücken gemeldet.[8][9] Sicherheitswarnungen von Oracle geben Java SE kritische, sicherheitsrelevante Patches an.[10]

Verweise

  1. ^ "Java SE -Übersicht". Oracle Corporation. Abgerufen 26. Februar, 2017.
  2. ^ "Java Se 6 veröffentlicht Inhalt". Oracle Corporation und/oder seine Partner. Abgerufen 1. Januar, 2013.
  3. ^ Umzug nach OpenJDK als offizielle Referenzimplementierung von Java SE 7
  4. ^ Java -Plattform, Standard Edition 7 Referenzimplementierungen
  5. ^ "Java -Plattform, Standard Edition 8 Referenzimplementierungen". Archiviert von das Original am 21. November 2015.
  6. ^ "Java -Spezifikationsanfragen Übersicht". Oracle Corporation und/oder seine Partner. Abgerufen 1. Januar, 2013.
  7. ^ "JEP 320: Entfernen Sie die Java EE- und CORBA -Module". Openjdk.java.net. 2019-05-23. Abgerufen 2022-03-20.
  8. ^ Gefährliche Verwundbarkeit in der neuesten Java -Version The H Security, 10. Januar 2013
  9. ^ Darlene Storm (25. September 2012). "Eine andere kritische Java -Verwundbarkeit ist ein Risiko von 1 Milliarde Benutzern". Computerwelt Sicherheitsblog. Archiviert von das Original am 13. Januar 2013. Abgerufen 11. Januar, 2013.
  10. ^ "Kritische Patch -Updates, Sicherheitswarnungen und Bulletin von Drittanbietern". Orakel.

Externe Links