Platforma Java, wersja standardowa - Java Platform, Standard Edition
Wersje platformy Java |
---|
|
Java Platform, Standard Edition ( Java SE ) to platforma obliczeniowa do tworzenia i wdrażania przenośnego kodu dla środowisk desktopowych i serwerowych . Java SE była wcześniej znana jako Java 2 Platform, Standard Edition ( J2SE ).
Platforma wykorzystuje język programowania Java i jest częścią rodziny platform oprogramowania Java . Java SE definiuje szereg interfejsów API ogólnego przeznaczenia - takich jak interfejsy API języka Java dla biblioteki klas języka Java - a także zawiera specyfikację języka Java i specyfikację maszyny wirtualnej języka Java . OpenJDK to oficjalna implementacja referencyjna od wersji 7.
Nazewnictwo, normy i specyfikacje
Platforma była znana jako Java 2 Platform, Standard Edition lub J2SE od wersji 1.2, aż do zmiany nazwy na Java Platform, Standard Edition lub Java SE w wersji 1.5. Litera „SE” służy do odróżnienia platformy podstawowej od platform Enterprise Edition ( Java EE ) i Micro Edition ( Java ME ). „2” pierwotnie miało na celu podkreślenie głównych zmian wprowadzonych w wersji 1.2, ale zostało usunięte w wersji 1.6. Konwencja nazewnictwa została kilkakrotnie zmieniona w historii wersji Java . Począwszy od J2SE 1.4 (Merlin), Java SE została opracowana w ramach Java Community Process , która tworzy opisy proponowanych i ostatecznych specyfikacji platformy Java o nazwie Java Specification Requests (JSR) . JSR 59 była specyfikacją zbiorczą dla J2SE 1.4, a JSR 176 określona J2SE 5.0 (Tiger). Java SE 6 (Mustang) została wydana pod JSR 270.
Java Platform, Enterprise Edition (Java EE) to powiązana specyfikacja, która obejmuje wszystkie klasy w języku Java SE, a także liczbę, która jest bardziej przydatna w programach uruchamianych na serwerach niż na stacjach roboczych .
Java Platform, Micro Edition (Java ME) to powiązana specyfikacja mająca na celu zapewnienie certyfikowanej kolekcji interfejsów API języka Java do tworzenia oprogramowania dla małych urządzeń o ograniczonych zasobach, takich jak telefony komórkowe , palmtopy i dekodery .
Java Runtime Environment (JRE) i Java Development Kit (JDK) są rzeczywiste pliki pobierane i instalowane na komputerze, aby uruchomić lub opracowania programów Java, odpowiednio.
Pakiety ogólnego przeznaczenia
java.lang
Pakiet Java java.lang
zawiera podstawowe klasy i interfejsy ściśle związane z językiem i wykonawczym systemu. Obejmuje to klasy główne, które tworzą hierarchię klas , typy powiązane z definicją języka, podstawowe wyjątki , funkcje matematyczne, wątki , funkcje bezpieczeństwa, a także niektóre informacje o bazowym systemie natywnym. Ten pakiet zawiera 22 z 32 Error
klas dostępnych w JDK 6.
Główne klasy i interfejsy w programie java.lang
to:
-
Object
- klasa, która jest podstawą każdej hierarchii klas. -
Enum
- klasa bazowa dla klas wyliczeniowych (od J2SE 5.0). -
Class
- klasa, która jest katalogiem głównym systemu odbić Java . -
Throwable
- klasa, która jest klasą bazową hierarchii klas wyjątków. -
Error
,Exception
iRuntimeException
- klasy bazowe dla każdego typu wyjątku. -
Thread
- klasa umożliwiająca operacje na wątkach. -
String
- klasa dla łańcuchów i literałów łańcuchowych . -
StringBuffer
orazStringBuilder
- klasy do wykonywania operacji na łańcuchach (StringBuilder
od J2SE 5.0). -
Comparable
- interfejs umożliwiający ogólne porównywanie i porządkowanie obiektów (od J2SE 1.2). -
Iterable
- interfejs umożliwiający generyczną iterację przy użyciu rozszerzonejfor
pętli (od J2SE 5.0). -
ClassLoader
,Process
,Runtime
,SecurityManager
, ISystem
- zajęcia, które zapewniają „operacje systemowe”, które zarządzają obciążenie dynamiczne klas, tworzenie zewnętrznych procesów , zapytania środowiska docelowego, takie jak pora dnia i egzekwowanie polityki bezpieczeństwa . -
Math
orazStrictMath
- klasy, które zapewniają podstawowe funkcje matematyczne, takie jak sinus , cosinus i pierwiastek kwadratowy (StrictMath
od J2SE 1.3). - Te prymitywne klasy wrapper że zamykania w kapsułki prymitywnych typów jak przedmioty .
- Podstawowe klasy wyjątków zgłaszane na poziomie języka i innych typowych wyjątków.
Klasy w programie java.lang
są automatycznie importowane do każdego pliku źródłowego .
java.lang.ref
java.lang.ref
Pakiet zapewnia bardziej elastyczne rodzaje odniesień niż są dostępne w inny sposób, co pozwala na ograniczoną interakcję między aplikacją a wirtualna maszyna Javy (JVM) śmieciarza . Jest to ważny pakiet, na tyle centralny dla języka, aby projektanci języka mogli nadać mu nazwę zaczynającą się od „java.lang”, ale jest on w pewnym sensie przeznaczony do specjalnych celów i nie jest używany przez wielu programistów. Ten pakiet został dodany w J2SE 1.2.
Java ma wyrazisty system odniesień i pozwala na specjalne zachowanie przy usuwaniu elementów bezużytecznych. Normalne odwołanie w Javie jest nazywane „silnym odniesieniem”. java.lang.ref
Pakiet określa trzy rodzaje innych odniesień miękki, słaby i odniesienia przerywanymi. Każdy typ odniesienia jest przeznaczony do określonego użytku.
SoftReference
Mogą być wykorzystane do realizacji pamięci podręcznej . Obiekt, który nie jest osiągalny przez silne odniesienie (to znaczy nie jest silnie osiągalny), ale do którego odnosi się miękkie odniesienie, nazywa się „miękko osiągalnym”. Cicho osiągalny obiekt może być zbierany jako śmieci według uznania garbage collectora. Zwykle oznacza to, że cicho osiągalne obiekty są zbierane jako elementy bezużyteczne tylko wtedy, gdy ilość wolnej pamięci jest niska - ale znowu jest to w gestii modułu odśmiecającego. Z semantycznego punktu widzenia miękkie odniesienie oznacza: „Zachowaj ten obiekt, gdy nic innego nie odwołuje się do niego, chyba że pamięć jest potrzebna”.- A
WeakReference
służy do implementacji słabych map. Obiekt, który nie jest silnie lub miękko osiągalny, ale do którego odnosi się słabe odniesienie, nazywany jest „ słabo osiągalnym ”. Słabo osiągalny obiekt jest zbierany jako śmieci w następnym cyklu zbierania. To zachowanie jest używane w klasiejava.util.WeakHashMap
. Słaba mapa pozwala programiście umieszczać pary klucz / wartość na mapie i nie martwić się o obiekty zajmujące pamięć, gdy klucz nie jest już dostępny nigdzie indziej. Innym możliwym zastosowaniem słabych odwołań jest pula stażystów ciągów . Z semantycznego punktu widzenia słabe odwołanie oznacza „pozbycie się tego obiektu, gdy nic innego nie odwołuje się do niego podczas następnego czyszczenia pamięci”. - A
PhantomReference
służy do odwoływania się do obiektów, które zostały oznaczone do wyrzucania elementów bezużytecznych i zostały sfinalizowane , ale nie zostały jeszcze odzyskane. Obiekt, który nie jest silnie, miękko lub słabo osiągalny, ale do którego odnosi się odniesienie do fantomu, nazywany jest „osiągalnym fantomem”. Pozwala to na bardziej elastyczne czyszczenie niż jest to możliwe w przypadku samego mechanizmu finalizacji. Z semantycznego punktu widzenia odniesienie do fantomu oznacza, że „ten obiekt nie jest już potrzebny i został ukończony w ramach przygotowań do zebrania”.
Każdy z tych typów odwołań rozszerza Reference
klasę, która zapewnia get()
metodę zwracania silnego odwołania do obiektu referencyjnego (lub null
jeśli odwołanie zostało wyczyszczone lub jeśli typ odwołania to fantom) oraz clear()
metodę czyszczenia odwołania.
java.lang.ref
Definiuje również klasy ReferenceQueue
, które mogą być używane w każdej aplikacji omówionych powyżej śledzenie obiektów, które zmieniły rodzaj odniesienia. Po Reference
utworzeniu jest opcjonalnie rejestrowany w kolejce referencyjnej. Aplikacja odpytuje kolejkę referencyjną w celu pobrania referencji, które zmieniły stan osiągalności.
java.lang.reflect
Odbicie to składnik Java API, który umożliwia kodowi Java badanie i „odzwierciedlanie” komponentów Java w czasie wykonywania oraz używanie odzwierciedlonych elementów członkowskich. Klas w java.lang.reflect
pakiecie wraz z java.lang.Class
i java.lang.Package
aplikacje, takie jak debugery , tłumaczy , inspektorów obiektów, przeglądarek klasy i usług, takich jak obiekt serializacji i JavaBeans , które potrzebują dostępu albo do publicznych członków obiektu docelowego (na podstawie swojej klasie wykonawczego) lub członkowie zadeklarowani przez daną klasę. Ten pakiet został dodany w JDK 1.1.
Odbicie służy do tworzenia instancji klas i wywoływania metod przy użyciu ich nazw, co pozwala na programowanie dynamiczne. Klasy, interfejsy, metody, pola i konstruktory można wykrywać i używać w czasie wykonywania. Refleksja jest wspierana przez metadane dotyczące programu, które JVM posiada.
Techniki
Istnieją podstawowe techniki związane z refleksją:
- Odkrycie - polega na pobraniu obiektu lub klasy i odkryciu członków, nadklas, zaimplementowanych interfejsów, a następnie ewentualnie przy użyciu odkrytych elementów.
- Użyj według nazwy - polega na rozpoczęciu od symbolicznej nazwy elementu i użyciu nazwanego elementu.
Odkrycie
Odnajdowanie zwykle rozpoczyna się od obiektu i wywołania Object.getClass()
metody w celu uzyskania kodu obiektu Class
. Class
Obiekt ma kilka metod odkrywania zawartość tej klasy, na przykład:
-
getMethods()
- zwraca tablicęMethod
obiektów reprezentujących wszystkie metody publiczne klasy lub interfejsu -
getConstructors()
- zwraca tablicęConstructor
obiektów reprezentujących wszystkie publiczne konstruktory klasy -
getFields()
- zwraca tablicęField
obiektów reprezentujących wszystkie publiczne pola klasy lub interfejsu -
getClasses()
- zwraca tablicęClass
obiektów reprezentujących wszystkie publiczne klasy i interfejsy, które są członkami (np. Klasy wewnętrzne ) klasy lub interfejsu -
getSuperclass()
- zwracaClass
obiekt reprezentujący nadklasę klasy lub interfejsu (null
jest zwracany dla interfejsów) -
getInterfaces()
- zwraca tablicęClass
obiektów reprezentujących wszystkie interfejsy implementowane przez klasę lub interfejs
Użyj według nazwy
Class
Można otrzymać albo przez odkrycie, za pomocą dosłownym klasy (na przykład MyClass.class
), albo za pomocą nazwy klasy (na przykład Class.forName("mypackage.MyClass")
). Z Class
obiektu, członek Method
, Constructor
albo Field
obiekty mogą być uzyskane za pomocą symboliczną nazwę członka. Na przykład:
-
getMethod("methodName", Class...)
- zwracaMethod
obiekt reprezentujący metodę publiczną o nazwie „nazwaMetody” klasy lub interfejsu, który akceptuje parametry określone przezClass...
parametry. -
getConstructor(Class...)
- zwracaConstructor
obiekt reprezentujący publiczny konstruktor klasy, która akceptuje parametry określone przezClass...
parametry. -
getField("fieldName")
- zwracaField
obiekt reprezentujący pole publiczne o nazwie „fieldName” klasy lub interfejsu.
Method
, Constructor
i Field
obiekty mogą służyć do dynamicznego uzyskiwania dostępu do reprezentowanego elementu członkowskiego klasy. Na przykład:
-
Field.get(Object)
- zwraca poleObject
zawierające wartość pola z instancji przekazanego obiektuget()
. (JeśliField
obiekt reprezentuje pole statyczne,Object
parametr jest ignorowany i może byćnull
). -
Method.invoke(Object, Object...)
- zwraca wartośćObject
zawierającą wynik wywołania metody dla wystąpienia pierwszegoObject
przekazanego parametruinvoke()
. PozostałeObject...
parametry są przekazywane do metody. (JeśliMethod
obiekt reprezentuje metodę statyczną, pierwszyObject
parametr jest ignorowany i może byćnull
). -
Constructor.newInstance(Object...)
- zwraca nowąObject
instancję z wywołania konstruktora. TeObject...
parametry są przekazywane do konstruktora. (Zwróć uwagę, że konstruktor bez parametrów dla klasy można również wywołać przez wywołanienewInstance()
).
Tablice i proxy
java.lang.reflect
Pakiet zawiera również Array
klasę, która zawiera statyczne metody tworzenia i manipulowania obiektami tablicy i od J2SE 1.3, Proxy
klasa dynamiczna utworzenie podpory klas proxy, które wykonują określone interfejsów.
Implementację Proxy
klasy zapewnia dostarczony obiekt, który implementuje InvocationHandler
interfejs. InvocationHandler
Jest invoke(Object, Method, Object[])
metoda nazywa się dla każdej metody powołać na proxy się obiektu pierwszego parametru obiektu proxy, drugi parametr jest Method
obiekt reprezentujący sposób z interfejsem realizowane przez serwer proxy, trzeci parametr jest tablicą parametrów przekazywane do metody interfejsu. invoke()
Metoda zwraca Object
wynik, który zawiera wynik zwracany do kodu, który wywołał proxy metody interfejsu.
java.io
java.io
Pakiet zawiera klasy, które obsługują wejścia i wyjścia . Klasy w pakiecie są głównie zorientowane strumieniowo ; jednak zapewniona jest również klasa dla plików o dostępie swobodnym . Klasy centralne w pakiecie to i , które są abstrakcyjnymi klasami bazowymi do odczytywania i zapisywania strumieni bajtów , odpowiednio. Powiązane klasy i są abstrakcyjnymi klasami bazowymi, odpowiednio do odczytu i zapisu w strumieniach znaków . Pakiet zawiera również kilka różnych klas do obsługi interakcji z systemem plików hosta .
InputStream
OutputStream
Reader
Writer
Strumienie
Klasy strumienia są zgodne ze wzorcem dekoratora , rozszerzając podklasę podstawową w celu dodania funkcji do klas strumienia. Podklasy klas strumienia podstawowego są zwykle nazywane jednym z następujących atrybutów:
- źródło / miejsce docelowe danych strumieniowych
- typ danych zapisywanych / odczytywanych ze strumienia
- dodatkowe przetwarzanie lub filtrowanie wykonywane na danych strumienia
Podklasy stream są nazwane stosując nazewnictwo wzór XxxStreamType
gdzie Xxx
to nazwa opisująca funkcję i StreamType
jest jednym z InputStream
, OutputStream
, Reader
, lub Writer
.
Poniższa tabela przedstawia źródła / miejsca docelowe obsługiwane bezpośrednio przez java.io
pakiet:
Źródło / miejsce docelowe | Nazwa | Typy strumieni | Wejście / wyjście | Zajęcia |
---|---|---|---|---|
byte tablica ( byte[] ) |
ByteArray |
byte |
w, na zewnątrz |
ByteArrayInputStream , ByteArrayOutputStream
|
char tablica ( char[] ) |
CharArray |
char |
w, na zewnątrz |
CharArrayReader , CharArrayWriter
|
plik | File |
byte , char
|
w, na zewnątrz |
FileInputStream , FileOutputStream , FileReader , FileWriter
|
string ( StringBuffer ) |
String |
char |
w, na zewnątrz |
StringReader , StringWriter
|
wątek ( Thread ) |
Piped |
byte , char
|
w, na zewnątrz |
PipedInputStream , PipedOutputStream , PipedReader , PipedWriter
|
Inne pakiety bibliotek standardowych zapewniają implementacje strumieniowe dla innych miejsc docelowych, takich jak InputStream
zwracane przez java.net.Socket.getInputStream()
metodę lub javax.servlet.ServletOutputStream
klasę Java EE .
Obsługa typów danych i przetwarzanie lub filtrowanie danych strumieniowych odbywa się za pomocą filtrów strumieniowych . Wszystkie klasy filtrów akceptują inny zgodny obiekt stream jako parametr konstruktora i dekorują zamknięty strumień dodatkowymi funkcjami. Filtry są utworzone przez przedłużenia jednej z klas filtrów podstawy FilterInputStream
, FilterOutputStream
, FilterReader
, i FilterWriter
.
Reader
I Writer
zajęcia są naprawdę tylko strumienie bajtowe z dodatkowym przetwarzanie przeprowadzane na strumieniu danych do konwersji bajtów na znaki. Używają domyślnego kodowania znaków dla platformy, które od J2SE 5.0 jest reprezentowane przez Charset
zwracaną przez java.nio.charset.Charset.defaultCharset()
metodę statyczną. InputStreamReader
Klasa konwertuje InputStream
do Reader
a OutputStreamWriter
klasa konwertuje OutputStream
do Writer
. Obie te klasy mają konstruktory, które obsługują określanie kodowania znaków do użycia. Jeśli nie określono kodowania, program używa domyślnego kodowania dla platformy.
W poniższej tabeli przedstawiono inne procesy i filtry java.io
obsługiwane bezpośrednio przez pakiet. Wszystkie te klasy rozszerzają odpowiednią Filter
klasę.
Operacja | Nazwa | Typy strumieni | Wejście / wyjście | Zajęcia |
---|---|---|---|---|
buforowanie | Buffered |
byte , char
|
w, na zewnątrz |
BufferedInputStream , BufferedOutputStream , BufferedReader , BufferedWriter
|
„odepchnij” ostatnią odczytaną wartość | Pushback |
byte , char
|
w |
PushbackInputStream , PushbackReader
|
odczyt / zapis typów pierwotnych | Data |
byte |
w, na zewnątrz |
DataInputStream , DataOutputStream
|
serializacja obiektów (obiekty do odczytu / zapisu) | Object |
bajt | w, na zewnątrz |
ObjectInputStream , ObjectOutputStream
|
Losowy dostęp
Te RandomAccessFile
podpory klasy losowego dostępu odczytu i zapisu plików. Klasa używa wskaźnika pliku, który reprezentuje przesunięcie bajtów w pliku dla następnej operacji odczytu lub zapisu. Wskaźnik pliku jest przenoszony niejawnie przez odczyt lub zapis i jawnie przez wywołanie metod seek(long)
lub skipBytes(int)
. Metoda zwraca bieżącą pozycję wskaźnika pliku getFilePointer()
.
System plików
File
Klasa reprezentuje plików lub katalogów ścieżkę w systemie plików . File
obiekty obsługują tworzenie, usuwanie i zmianę nazw plików i katalogów oraz manipulowanie atrybutami plików, takimi jak tylko do odczytu i datownik ostatniej modyfikacji . File
obiekty reprezentujące katalogi mogą służyć do uzyskania listy wszystkich zawartych plików i katalogów.
FileDescriptor
Klasa jest deskryptor pliku , który reprezentuje źródło lub zlewu (docelowy) bajtów. Zwykle jest to plik, ale może to być również konsola lub gniazdo sieciowe . FileDescriptor
obiekty służą do tworzenia File
strumieni. Są uzyskiwane ze File
strumieni i java.net
gniazd oraz gniazd datagramowych.
java.nio
W J2SE 1.4 pakiet java.nio
(NIO lub nieblokujące we / wy) został dodany w celu obsługi operacji we / wy mapowanych w pamięci , ułatwiając operacje we / wy bliżej podstawowego sprzętu z czasami znacznie lepszą wydajnością. java.nio
Opakowanie zapewnia obsługę dla pewnej liczby typów buforów. Podpakiet java.nio.charset
zapewnia obsługę różnych kodowań znaków dla danych znakowych. Podpakiet java.nio.channels
zapewnia obsługę kanałów, które reprezentują połączenia z jednostkami zdolnymi do wykonywania operacji we / wy, takimi jak pliki i gniazda. java.nio.channels
Pakiet zapewnia również wsparcie dla drobnoziarnistą blokowania plików.
java.math
Te java.math
podpory pakietów multiprecision arytmetyka (w tym modułowych operacji arytmetycznych) i zapewnia multiprecision prime generatora liczb używanych do generowania kluczy kryptograficznych. Główne klasy pakietu to:
-
BigDecimal
- zapewnia liczby dziesiętne ze znakiem o dowolnej precyzji.BigDecimal
daje użytkownikowi kontrolę nad zachowaniem zaokrąglaniaRoundingMode
. -
BigInteger
- zapewnia liczby całkowite o dowolnej precyzji. Operacje naBigInteger
nie powodują przepełnienia ani utraty precyzji. Oprócz standardowych operacji arytmetycznych, zapewnia modułowy arytmetyki , GCD obliczenia, testy pierwszości , liczba pierwsza generacja, bit manipulacji, i rozmaite inne operacje. -
MathContext
- hermetyzować ustawienia kontekstu, które opisują pewne reguły dla operatorów numerycznych. -
RoundingMode
- wyliczenie, które zapewnia osiem zachowań zaokrągleń.
java.net
java.net
Pakiet zawiera specjalne procedury IO do sieci, umożliwiając HTTP żądania, a także inne typowe transakcje.
java.text
Te java.text
narzędzia analizowania pakietów procedur na smyczki i podpór różnych językach czytelnych dla człowieka i dla ustawień narodowych parsowania.
java.util
java.util
Pakiet koncentruje się na strukturach danych, które agregują obiekty . W pakiecie znajduje się Collection API , zorganizowana hierarchia struktury danych, na którą duży wpływ mają kwestie dotyczące wzorców projektowych .
Pakiety specjalnego przeznaczenia
java.applet
Stworzony do obsługi tworzenia apletów Java , java.applet
pakiet umożliwia pobieranie aplikacji przez sieć i uruchamianie w chronionej piaskownicy. Ograniczenia bezpieczeństwa można łatwo nałożyć na piaskownicę. Na przykład programista może zastosować podpis cyfrowy do apletu, oznaczając go tym samym jako bezpieczny. Dzięki temu użytkownik może nadać apletowi uprawnienia do wykonywania ograniczonych operacji (takich jak dostęp do lokalnego dysku twardego) i usuwa niektóre lub wszystkie ograniczenia piaskownicy. Certyfikaty cyfrowe są wydawane przez urzędy certyfikacji .
java.beans
W java.beans
pakiecie znajdują się różne klasy do tworzenia i manipulowania komponentami beanowymi, komponentami wielokrotnego użytku zdefiniowanymi przez architekturę JavaBeans . Architektura zapewnia mechanizmy manipulowania właściwościami komponentów i wyzwalania zdarzeń, gdy te właściwości się zmieniają.
Interfejsy API w programie java.beans
są przeznaczone do użytku przez narzędzie do edycji fasoli, w którym można łączyć, dostosowywać i manipulować komponentami bean. Jednym z typów edytorów fasoli jest projektant GUI w zintegrowanym środowisku programistycznym .
java.awt
java.awt
Lub Abstract Window Toolkit, zapewnia dostęp do podstawowego zestawu GUI widżety na podstawie widget zestawu bazowego lokalnej platformy za rdzeń podsystemu zdarzeń GUI, a interfejs pomiędzy rodzimym systemie okienkowym i aplikacji Java. Zapewnia również kilka podstawowych menedżerów układu , pakiet transferu danych do użytku ze schowkiem i przeciąganiem i upuszczaniem , interfejs do urządzeń wejściowych, takich jak myszy i klawiatury , a także dostęp do zasobnika systemowego w systemach pomocniczych. Ten pakiet, wraz z javax.swing
największą liczbą wyliczeń (łącznie 7) w JDK 6.
java.rmi
java.rmi
Pakiet zawiera Java zdalnego wywołania metody do obsługi zdalnych wywołań procedur między dwiema aplikacjami Java działające w różnych JVMs .
java.security
Wsparcie dla bezpieczeństwa, w tym algorytm skrótu wiadomości, jest zawarte w java.security
pakiecie.
java.sql
Implementacja interfejsu API JDBC (używanego do uzyskiwania dostępu do baz danych SQL ) jest zgrupowana w java.sql
pakiecie.
javax.rmi
javax.rmi
Pakiet zawiera wsparcie dla zdalnej komunikacji pomiędzy aplikacjami, używając RMI nad IIOP protokół. Protokół ten łączy w sobie cechy RMI i CORBA.
Java SE Core Technologies - CORBA / RMI-IIOP
javax.swing
Swing to zbiór procedur, na podstawie których java.awt
można udostępnić zestaw narzędzi widgetów niezależnych od platformy . javax.swing
wykorzystuje procedury rysowania 2D do renderowania komponentów interfejsu użytkownika zamiast polegać na podstawowej obsłudze natywnego interfejsu GUI systemu operacyjnego .
Ten pakiet zawiera największą liczbę klas (w sumie 133) w JDK 6. Ten pakiet, wraz z java.awt
największą liczbą wyliczeń (w sumie 7) w JDK 6. Obsługuje wygląd i sposób działania (PLAF), dzięki czemu widżety w graficznym interfejsie użytkownika mogą imitować te z podstawowego systemu natywnego. Wzorce projektowe przenikają przez system, zwłaszcza modyfikacja wzorca model – widok – kontroler , co rozluźnia powiązanie między funkcją a wyglądem. Jedną z niespójności jest to, że (od wersji J2SE 1.3) czcionki są rysowane przez podstawowy system natywny, a nie przez Javę, co ogranicza przenośność tekstu. Istnieją obejścia, takie jak używanie czcionek bitmapowych. Ogólnie rzecz biorąc, „układy” są używane i utrzymują elementy w estetycznie spójnym interfejsie użytkownika na różnych platformach.
javax.swing.text.html.parser
javax.swing.text.html.parser
Pakiet zawiera HTML parser error tolerancyjnego, który jest używany do pisania różnych przeglądarek i robotów internetowych.
javax.xml.bind.annotation
javax.xml.bind.annotation
Pakiet zawiera największą liczbę typów adnotacji (30 w sumie) w JDK 6. Określa adnotacji do dostosowywania elementów Java program do mapowania schematu XML.
Pakiety OMG
org.omg.CORBA
org.omg.CORBA
Pakiet zawiera wsparcie dla zdalnej komunikacji pomiędzy aplikacjami z wykorzystaniem General Inter-ORB Protocol i wspiera inne cechy wspólne obiektu żądania broker architektury . Podobnie jak RMI i RMI-IIOP , ten pakiet służy do wywoływania zdalnych metod obiektów na innych maszynach wirtualnych (zwykle przez sieć).
Ten pakiet zawiera największą liczbę Exception
klas (w sumie 45) w JDK 6. Ze wszystkich możliwości komunikacyjnych CORBA jest przenoszona między różnymi językami; Jednak z tym wiąże się większa złożoność.
Te pakiety zostały wycofane w wersji Java 9 i usunięte z wersji Java 11.
org.omg.PortableInterceptor
org.omg.PortableInterceptor
Pakiet zawiera największą liczbę interfejsów (39 w sumie) w JDK 6. Zapewnia mechanizm rejestracji haki ORB ORB usługi, przez które przechwytują normalnego przepływu realizacji ORB.
Bezpieczeństwo
Zgłoszono kilka krytycznych luk w zabezpieczeniach. Alerty bezpieczeństwa od Oracle ogłaszają krytyczne poprawki bezpieczeństwa dla Java SE.