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
, undRunTimeException
- 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
undStringBuilder
- 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 erweitertzum
Schleife (Ab J2SE 5.0). -
Klassenloader
,Verfahren
,Laufzeit
,Sicherheitsmanager
, undSystem
- 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
undStriktmath
- 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 verwendetJava.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ückMethode
Objekte, die alle öffentlichen Methoden der Klasse oder Schnittstelle darstellen -
getConstructors ()
- Gibt eine Reihe von einer Reihe zurückKonstrukteur
Objekte, die alle öffentlichen Konstrukteure der Klasse darstellen -
getfields ()
- Gibt eine Reihe von einer Reihe zurückAufstellen
Objekte, die alle öffentlichen Felder der Klasse oder Schnittstelle darstellen -
getClasss ()
- Gibt eine Reihe von einer Reihe zurückKlasse
Objekte, die alle öffentlichen Klassen und Schnittstellen repräsentieren, die Mitglieder sind (z. innere Klassen) der Klasse oder Schnittstelle -
GetuperClass ()
- Gibt die zurückKlasse
Objekt, das die Superklasse der Klasse oder Schnittstelle darstellt (Null
wird für Schnittstellen zurückgegeben) -
GetInterfaces ()
- Gibt eine Reihe von einer Reihe zurückKlasse
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ückMethode
Objekt, das die öffentliche Methode mit dem Namen "MethodName" der Klasse oder Schnittstelle darstellt, die die von der angegebenen Parameter akzeptiertKlasse...
Parameter. -
GetConstructor (Klasse ...)
- Gibt die zurückKonstrukteur
Objekt, das den öffentlichen Konstruktor der Klasse darstellt, der die von der angegebenen Parameter akzeptiertKlasse...
Parameter. -
Getfield ("Fieldname")
- Gibt die zurückAufstellen
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 anObjekt
enthält den Wert des Feldes aus der Instanz des übergebenen Objektserhalten()
. (Wenn dieAufstellen
Objekt repräsentiert ein statisches Feld, dann dasObjekt
Der Parameter wird ignoriert und kann seinNull
.)) -
Methode.invoke (Objekt, Objekt ...)
- Gibt anObjekt
Das Ergebnis des Aufrufens der Methode für die Instanz des erstenObjekt
Parameter übergeben anaufrufen()
. Der RestObjekt...
Parameter werden an die Methode übergeben. (Wenn dieMethode
Objekt repräsentiert a Statische Methode dann der ersteObjekt
Der Parameter wird ignoriert und kann seinNull
.)) -
Constructor.Newinstance (Objekt ...)
- Gibt die Neue zurückObjekt
Instanz vom Aufrufen des Konstruktors. DasObjekt...
Parameter werden an den Konstruktor übergeben. (Beachten Sie, dass der parameterlose Konstruktor für eine Klasse auch durch Anrufe aufgerufen werden kannnewinstance ()
.))
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 durchRoundingMode
. -
Biginteger
-Bietet willkürliche Zählerzahlen. Operationen aufBiginteger
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.awt
oder 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
- ^ "Java SE -Übersicht". Oracle Corporation. Abgerufen 26. Februar, 2017.
- ^ "Java Se 6 veröffentlicht Inhalt". Oracle Corporation und/oder seine Partner. Abgerufen 1. Januar, 2013.
- ^ Umzug nach OpenJDK als offizielle Referenzimplementierung von Java SE 7
- ^ Java -Plattform, Standard Edition 7 Referenzimplementierungen
- ^ "Java -Plattform, Standard Edition 8 Referenzimplementierungen". Archiviert von das Original am 21. November 2015.
- ^ "Java -Spezifikationsanfragen Übersicht". Oracle Corporation und/oder seine Partner. Abgerufen 1. Januar, 2013.
- ^ "JEP 320: Entfernen Sie die Java EE- und CORBA -Module". Openjdk.java.net. 2019-05-23. Abgerufen 2022-03-20.
- ^ Gefährliche Verwundbarkeit in der neuesten Java -Version The H Security, 10. Januar 2013
- ^ 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.
- ^ "Kritische Patch -Updates, Sicherheitswarnungen und Bulletin von Drittanbietern". Orakel.