Java Platform, Standard Edition - Java Platform, Standard Edition
| Java platform kiadások |
|---|
|
Java Platform, Standard Edition ( Java SE ) egy számítástechnikai platform fejlesztési és telepítési hordozható kódot az asztali és szerver környezetben. A Java SE korábban Java 2 Platform, Standard Edition ( J2SE ) néven volt ismert .
A platform Java programozási nyelvet használ, és része a Java szoftverplatform családnak. A Java SE meghatározza az általános célú API - k körét - például a Java Class Library Java API- ként -, és tartalmazza a Java nyelvspecifikációt és a Java Virtual Machine specifikációt is . Az OpenJDK a hivatalos referencia implementáció a 7. verzió óta.
Nómenklatúra, szabványok és előírások
A platform az 1.2-es verziótól Java 2 Platform, Standard Edition vagy J2SE néven volt ismert , mindaddig, amíg az elnevezés 1.5-ös verziójában Java Platformra, Standard Edition-re vagy Java SE- re változott . Az "SE" az alapplatform megkülönböztetésére szolgál az Enterprise Edition ( Java EE ) és a Micro Edition ( Java ME ) platformoktól. A "2" eredetileg az 1.2-es verzióban bevezetett főbb változások hangsúlyozására készült, de az 1.6-os verzióból eltávolították. A névadási szokásokat a Java verziótörténete során többször megváltoztatták . Kezdve a J2SE 1.4 (Merlin), Java SE alapján fejlesztették a Java Community Process , ami termel leírását javasolt és a végső előírásokat a Java platform nevű Java specifikációs kérelmet (JSR) . A JSR 59 volt a J2SE 1.4 esernyős specifikációja, a JSR 176 pedig a J2SE 5.0 (Tiger). A Java SE 6 (Mustang) JSR 270 alatt jelent meg.
A Java Platform, Enterprise Edition (Java EE) egy kapcsolódó specifikáció, amely magában foglalja a Java SE összes osztályát , valamint egy számot, amely sokkal hasznosabb a szervereken futó programok számára , szemben a munkaállomásokkal .
A Java Platform, Micro Edition (Java ME) egy kapcsolódó specifikáció, amelynek célja a Java API-k hiteles gyűjteményének biztosítása olyan szoftverek fejlesztéséhez, amelyek kicsi, erőforrás-korlátozott eszközök, például mobiltelefonok , PDA - k és set-top boxok számára készültek .
A Java Runtime Environment (JRE) és a Java Development Kit (JDK) a tényleges fájlok, amelyeket letöltöttek és telepítettek egy számítógépre a Java programok futtatásához vagy fejlesztéséhez.
Általános célú csomagok
java.lang
A Java csomag java.lang alapvető osztályokat és interfészeket tartalmaz, amelyek szorosan kapcsolódnak a nyelvi és futásidejű rendszerhez. Ide tartoznak az osztályhierarchiát alkotó gyökérosztályok , a nyelvdefinícióhoz kötött típusok, alapvető kivételek , matematikai függvények, szálak , biztonsági funkciók, valamint néhány információ az alapul szolgáló natív rendszerről. Ez a csomag Error a JDK 6 32 osztályából 22-t tartalmaz .
A főbb osztályok és interfészek java.lang :
-
Object- az osztály, amely minden osztályhierarchia gyökere. -
Enum- a felsorolási osztályok alaposztálya (a J2SE 5.0-tól). -
Class- az osztály, amely a Java reflexiós rendszer gyökere . -
Throwable- az osztály, amely a kivételosztály-hierarchia alaposztálya. -
Error,,ExceptionésRuntimeException- az egyes kivételtípusok alaposztályai. -
Thread- az osztály, amely lehetővé teszi a szálakon végzett műveleteket. -
String- a húrok és húr literálok osztálya . -
StringBufferésStringBuilder- osztályok a karakterlánc-manipuláció végrehajtására (StringBuildera J2SE 5.0-tól). -
Comparable- az interfész, amely lehetővé teszi az objektumok általános összehasonlítását és sorrendjét (a J2SE 1.2-től). -
Iterable- az interfész, amely lehetővé teszi a generált iterációt a továbbfejlesztettforhurok használatával (a J2SE 5.0-tól). -
ClassLoader,Process,Runtime,SecurityManager, ÉsSystem- osztályok, amelyek „a rendszer működését, hogy” kezelni a dinamikus terhelés osztályok, létrehozása a külső folyamatok , gazdakörnyezettől vizsgálatok, mint például a napszak, és érvényesítése biztonsági politika . -
MathésStrictMath- olyan osztályok, amelyek biztosítják az alapvető matematikai függvényeket, mint például a szinusz , a koszinusz és a négyzetgyök (StrictMatha J2SE 1.3-tól). - A primitív wrapper osztályok , hogy magukba primitív típusok , mint tárgyak .
- Az alapvető kiviteli osztályok a nyelvi szintű és más általános kivételek számára.
A osztályok java.lang automatikusan importálódnak minden forrásfájlba .
java.lang.ref
A java.lang.ref csomag rugalmasabb referenciákat kínál, mint amilyenek egyébként rendelkezésre állnak, korlátozott interakciót tesz lehetővé az alkalmazás és a Java Virtual Machine (JVM) szemétgyűjtő között . Fontos csomag, elég központi a nyelv számára, hogy a nyelvtervezők "java.lang" kezdetű nevet adhassanak neki, de kissé speciális célú, és sok fejlesztő nem használja. Ez a csomag a J2SE 1.2-be került.
A Java kifejező referenciarendszerrel rendelkezik, és különleges viselkedést tesz lehetővé a szemétszállítás során. A Java normál referenciáját "erős referenciának" nevezik. A java.lang.ref csomag három másik hivatkozástípust határoz meg - puha, gyenge és fantom hivatkozásokat. Minden referencia-típus egy adott felhasználásra készült.
- A gyorsítótár
SoftReferencemegvalósítására használható . Azokat az objektumokat, amelyek nem érhetők el erős referenciával (vagyis nem érhetők el erősen), de puha referenciával hivatkoznak rá, "puhán elérhetőnek" nevezzük. Lágyan elérhető tárgy lehet a szemétgyűjtő belátása szerint összegyűjtött szemét. Ez általában azt jelenti, hogy a lágyan elérhető tárgyakat csak akkor gyűjtik szemétnek, ha kevés a szabad memória - de ez megint a szemétszedő belátása szerint történik. Szemantikailag egy puha hivatkozás azt jelenti: "Tartsa meg ezt az objektumot, ha semmi más nem utal rá, hacsak nincs szükség a memóriára." - Az A-
WeakReferencet gyenge térképek megvalósítására használják. Azokat az objektumokat, amelyek nem erősen vagy halkan elérhetőek, de gyenge referenciával hivatkoznak, " gyengén elérhető " -nek nevezzük . Gyengén elérhető objektum a következő gyűjtési ciklusban összegyűjtött szemét. Ezt a viselkedést használják az osztálybanjava.util.WeakHashMap. A gyenge térkép lehetővé teszi a programozó számára, hogy kulcs / érték párokat helyezzen el a térképen, és ne aggódjon az objektumok memóriaigénye miatt, amikor a kulcs már nem érhető el sehol máshol. A gyenge referenciák másik lehetséges alkalmazása a string intern pool . Szemantikailag a gyenge referencia azt jelenti, hogy "szabaduljon meg ettől az objektumtól, amikor semmi más nem utal rá a következő szemétgyűjtéskor". - Az A
PhantomReferencea szemétgyűjtéshez megjelölt és véglegesített , de még nem igényelt objektumok hivatkozására szolgál . Azokat az objektumokat, amelyek nem érhetők el erősen, halkan vagy gyengén, de fantom hivatkozással hivatkoznak rá, "fantom elérhetőnek" nevezzük. Ez rugalmasabb tisztítást tesz lehetővé, mint ami csak a véglegesítési mechanizmussal lehetséges. Szemantikailag egy fantomreferencia azt jelenti, hogy "erre az objektumra már nincs szükség, és az összegyűjtés előkészítése véglegesítették".
Ezen referenciatípusok mindegyike kiterjeszti az Reference osztályt, amely biztosítja a referenciaobjektum erős hivatkozásának visszaadására szolgáló get() módszert (vagy null ha a referencia törlődött, vagy ha a referencia típusa fantom), valamint a referencia törlésének clear() módját.
Az java.lang.ref is meghatározza az osztály ReferenceQueue , amelyet fel lehet használni az egyes alkalmazások fentiekben nyomon követni a tárgyakat, amelyek megváltoztatták hivatkozás típusát. A Reference létrehozásakor opcionálisan egy referencia várólistán regisztrálja. Az alkalmazás lekérdezi a referencia várólistát, hogy olyan referenciákat kapjon, amelyek megváltoztatták az elérhetőség állapotát.
java.lang.reflect
A Reflection a Java API egyik alkotóeleme, amely lehetővé teszi a Java kód számára, hogy futás közben megvizsgálja és "reflektáljon" a Java komponensekre, és felhasználja a reflektált tagokat. Osztályok a java.lang.reflect csomagot, együtt java.lang.Class és java.lang.Package befogadni alkalmazások, mint a hibakereső , tolmácsok , tárgy ellenőrök, osztály böngésző és szolgáltatásokat, mint a tárgy sorszámozás és JavaBeanshez hozzáférést igénylő vagy a nyilvánosság tagjai a céltárgy (alapuló futásidejű osztály), vagy az adott osztály által deklarált tagok. Ez a csomag a JDK 1.1-be került.
A reflexió az osztályok példányosítására és a nevük használatával történő metódusok meghívására szolgál, ez a koncepció dinamikus programozást tesz lehetővé. Osztályok, interfészek, módszerek, mezők és konstruktorok egyaránt felfedezhetők és felhasználhatók futás közben. A reflexiót a JVM programmal kapcsolatos metaadatai támogatják .
Technikák
A reflexiónak alapvető technikái vannak:
- Felfedezés - ide tartozik egy objektum vagy osztály felvétele, a tagok, a szuperosztályok, a megvalósított interfészek felfedezése, majd esetleg a felfedezett elemek használata.
- Név szerinti felhasználás - magában foglalja az elem szimbolikus nevével való kezdést és a megnevezett elem használatát.
Felfedezés
A felfedezés általában egy objektummal kezdődik, és meghívja a Object.getClass() módszert az objektum megszerzésére Class . Az Class objektumnak számos módszere van az osztály tartalmának felfedezésére, például:
-
getMethods()- azMethodobjektum tömbjét adja vissza, amely az osztály vagy interfész összes nyilvános módszerét reprezentálja -
getConstructors()- azConstructorobjektum tömbjét adja vissza, amely az osztály összes nyilvános kivitelezőjét ábrázolja -
getFields()- azFieldobjektum tömbjét adja vissza, amely az osztály vagy interfész összes nyilvános mezőjét reprezentálja -
getClasses()- olyanClassobjektumok tömbjét adja vissza, amelyek az összes nyilvános osztályt és interfészt képviselik, amelyek tagjai (pl. Belső osztályai ) az osztálynak vagy az interfésznek -
getSuperclass()-Classaz osztály vagy interfész szuperosztályát reprezentáló objektumot adja vissza (nullaz interfészek esetében visszaadja) -
getInterfaces()- azClassobjektumok tömbjét adja vissza , amelyek az osztály vagy az interfész által megvalósított összes interfészt reprezentálják
Használd név szerint
Az Class objektum megtalálható felfedezéssel, az osztály literáljának használatával (pl. MyClass.class ) Vagy az osztály nevének használatával (pl Class.forName("mypackage.MyClass") .). A Class tárgy, tagja Method , Constructor vagy Field tárgyak alkalmazásával érhetjük szimbolikus nevét a tag. Például:
-
getMethod("methodName", Class...)-Methoda nyilvános metódust reprezentáló objektumot az osztály vagy interfész "methodName" nevével adja vissza, amely elfogadja a paraméterekkel megadottClass...paramétereket. -
getConstructor(Class...)-Constructoraz osztály nyilvános konstruktorát reprezentáló objektumot adja vissza, amely elfogadja a paraméterekkel megadottClass...paramétereket. -
getField("fieldName")-Fielda nyilvános mezőt reprezentáló objektumot az osztály vagy az interfész "fieldName" nevével adja vissza .
Method ,, Constructor és az Field objektumok felhasználhatók az osztály képviselt tagjának dinamikus elérésére. Például:
-
Field.get(Object)-Objecta mező értékét tartalmazó értéket ad vissza az átadott objektum példányábólget(). (Ha azFieldobjektum statikus mezőt képvisel, akkor aObjectparamétert figyelmen kívül hagyják, és lehetnull.) -
Method.invoke(Object, Object...)-Objecta metódus meghívásának eredményét tartalmazza az elsőObjectátadott paraméter példányáhozinvoke(). A fennmaradóObject...paramétereket átadják a módszernek. (Ha azMethodobjektum statikus módszert képvisel, akkor az elsőObjectparamétert figyelmen kívül hagyjuk, és lehet, hogy az lesznull.) -
Constructor.newInstance(Object...)- visszaadja az újObjectpéldányt a konstruktor meghívásáról. AObject...paramétereket továbbítják a kivitelezőnek. (Ne feledje, hogy egy osztály paraméter nélküli konstruktora hívással is meghívhatónewInstance().)
Tömbök és meghatalmazottak
A java.lang.reflect csomag egy olyan Array osztályt is tartalmaz, amely statikus módszereket tartalmaz a tömbobjektumok létrehozására és kezelésére, valamint a J2SE 1.3 óta egy Proxy osztályt, amely támogatja a megadott interfészeket megvalósító proxyosztályok dinamikus létrehozását.
Az Proxy osztály megvalósítását egy szállított objektum biztosítja, amely megvalósítja az InvocationHandler interfészt. A InvocationHandler 's invoke(Object, Method, Object[]) metódust minden proxy objektumon meghívott metódusra meghívjuk - az első paraméter a proxy objektum, a második paraméter Method a metódust reprezentáló objektum a proxy által megvalósított interfészről, a harmadik paraméter pedig az átadott paraméterek tömbje az interfész módszerhez. A invoke() módszer olyan Object eredményt ad vissza , amely az eredményt visszaküldi a proxy felület metódusának nevezett kódba.
java.io
A java.io csomag osztályokat tartalmaz, amelyek támogatják a bemenetet és a kimenetet . A csomagban szereplő osztályok elsősorban stream-orientáltak ; azonban a véletlen hozzáférésű fájlok osztálya is rendelkezésre áll. A központi osztályok a csomagban InputStream , és OutputStream , melyek elméleti bázis osztályok olvasás és írás byte stream , ill. A kapcsolódó osztályok Reader és Writer absztrakt alaposztályok a karakterfolyamokból való beolvasáshoz és az azokba történő íráshoz . A csomag néhány különféle osztályt is tartalmaz, amelyek támogatják a gazda fájlrendszerrel való interakciókat .
Patakok
Az adatfolyam-osztályok a dekorátor mintáját követik az alosztály kiterjesztésével, hogy szolgáltatásokat adhassanak hozzá a stream osztályokhoz. Az alapfolyam osztályok alosztályait általában a következő attribútumok egyikére nevezik el:
- az adatfolyam forrása / célja
- a folyamba írt / onnan olvasott adatok típusa
- az adatfolyam adatainak további feldolgozása vagy szűrése
A patak alosztályok elnevezése az elnevezési minta XxxStreamType , ahol Xxx a neve leírja a funkciót, és StreamType az egyik InputStream , OutputStream , Reader vagy Writer .
Az alábbi táblázat a java.io csomag által közvetlenül támogatott forrásokat / célokat mutatja :
| A forrás uticélja | Név | Patak típusok | Be ki | Osztályok |
|---|---|---|---|---|
byte tömb ( byte[] ) |
ByteArray |
byte |
be ki |
ByteArrayInputStream , ByteArrayOutputStream
|
char tömb ( char[] ) |
CharArray |
char |
be ki |
CharArrayReader , CharArrayWriter
|
| fájl | File |
byte , char
|
be ki |
FileInputStream , FileOutputStream , FileReader , FileWriter
|
karakterlánc ( StringBuffer ) |
String |
char |
be ki |
StringReader , StringWriter
|
szál ( Thread ) |
Piped |
byte , char
|
be ki |
PipedInputStream , PipedOutputStream , PipedReader , PipedWriter
|
Más szabványos könyvtárcsomagok stream-implementációkat biztosítanak más célállomásokhoz, például InputStream a java.net.Socket.getInputStream() metódus által visszaadott vagy a Java EE javax.servlet.ServletOutputStream osztályhoz.
Az adattípus kezelése és az adatfolyam feldolgozása vagy szűrése folyam szűrőkön keresztül valósul meg . A szűrőosztályok egy másik kompatibilis adatfolyam objektumot fogadnak el a konstruktor paramétereként, és a zárt adatfolyamot további funkciókkal díszítik . Szűrők által létrehozott kiterjesztésével egyik alap szűrő osztályok FilterInputStream , FilterOutputStream , FilterReader , vagy FilterWriter .
Az Reader és Writer osztályok valójában csak bájtfolyamok, további feldolgozással az adatfolyamon, hogy a bájtokat karakterekké konvertálják. Az alapértelmezett karakterkódolást használják a platformhoz, amelyet a J2SE 5.0-tól Charset a java.nio.charset.Charset.defaultCharset() statikus módszerrel kapott eredmény képvisel. Az InputStreamReader osztály átalakítja az InputStream a-t a-ba Reader , az OutputStreamWriter osztály pedig OutputStream az-t a-ba Writer . Mindkét osztály rendelkezik konstruktorokkal, amelyek támogatják a használandó karakterkódolás megadását. Ha nincs megadva kódolás, akkor a program az alapértelmezett kódolást használja a platformhoz.
Az alábbi táblázat bemutatja azokat a folyamatokat és szűrőket, amelyeket a java.io csomag közvetlenül támogat. Mindezek az osztályok kiterjesztik a megfelelő Filter osztályt.
| Művelet | Név | Patak típusok | Be ki | Osztályok |
|---|---|---|---|---|
| pufferelés | Buffered |
byte , char
|
be ki |
BufferedInputStream , BufferedOutputStream , BufferedReader , BufferedWriter
|
| "tolja vissza" az utolsó olvasott értéket | Pushback |
byte , char
|
ban ben |
PushbackInputStream , PushbackReader
|
| primitív típusok olvasása / írása | Data |
byte |
be ki |
DataInputStream , DataOutputStream
|
| objektumok sorosítása ( objektumok olvasása / írása) | Object |
byte | be ki |
ObjectInputStream , ObjectOutputStream
|
Véletlenszerű hozzáférés
Az RandomAccessFile osztály támogatja a fájlok véletlen hozzáférésű olvasását és írását. Az osztály egy fájlmutatót használ, amely a fájlban lévő byte-offsetet képviseli a következő olvasási vagy írási művelethez. A fájlmutatót hallgatólagosan olvassuk vagy írjuk, és kifejezetten a seek(long) vagy skipBytes(int) metódusokat hívjuk meg. A fájlmutató aktuális helyzetét a getFilePointer() módszer adja vissza .
Fájlrendszer
Az File osztály jelentése fájl vagy könyvtár elérési útját a fájlrendszerben . File Az objektumok támogatják a fájlok és könyvtárak létrehozását, törlését és átnevezését, valamint a fájlattribútumok ( például csak olvasható és utoljára módosított időbélyegző) manipulálását . File A könyvtárakat ábrázoló objektumok felhasználhatók az összes fájl és könyvtár felsorolásához.
Az FileDescriptor osztály egy fájlleíró , amely a bájtok forrását vagy fogadóját (célját) jelöli. Általában ez egy fájl, de lehet konzol vagy hálózati aljzat is . FileDescriptor az objektumokat File folyamok létrehozására használják . Ezeket File patakokból és java.net aljzatokból, valamint datagram aljzatokból nyerik .
java.nio
A J2SE 1.4-ben a csomagot java.nio (NIO vagy nem blokkoló I / O) hozzáadták, hogy támogassák a memóriával leképezett I / O-t , megkönnyítve az I / O műveleteket az alapul szolgáló hardverhez közelebb, néha drámai módon jobb teljesítménnyel. A java.nio csomag számos puffertípus számára nyújt támogatást. Az alcsomag java.nio.charset támogatja a karakteradatok különböző karakterkódolását . Az alcsomag java.nio.channels olyan csatornákat támogat , amelyek olyan kapcsolatokat képviselnek az entitások számára, amelyek képesek I / O műveletek végrehajtására, például fájlokra és foglalatokra. A java.nio.channels csomag a fájlok finomszemcsés zárolásához is támogatást nyújt.
java.math
A java.math csomag támogatja a többprecíziós aritmetikát (beleértve a moduláris aritmetikai műveleteket is), és többprecíziós prímszám-generátorokat biztosít a kriptográfiai kulcsok előállításához. A csomag fő osztályai a következők:
-
BigDecimal- tetszőleges pontosságú aláírt tizedes számokat biztosít.BigDecimalsegítségével a felhasználó irányíthatja a kerekítési viselkedéstRoundingMode. -
BigInteger- tetszőleges pontosságú egész számokat ad meg. A műveletekBigIntegernem túlfolynak és nem veszítik el a pontosságot. Amellett, hogy a szokásos aritmetikai műveletek, ez biztosítja a moduláris aritmetika , GCD számítás Prímtesztelés , prímszám generációs, kicsit manipuláció, és egyéb műveletek. -
MathContext- összefoglalja azokat a kontextusbeállításokat, amelyek leírják a numerikus operátorok bizonyos szabályait. -
RoundingMode- egy felsorolás, amely nyolc kerekítési viselkedést biztosít.
java.net
A java.net csomag speciális IO rutinokat biztosít a hálózatok számára, lehetővé téve a HTTP kéréseket, valamint más gyakori tranzakciókat.
java.text
A java.text csomag végrehajtja a karakterláncok elemzési rutinjait, és támogatja az ember által olvasható különféle nyelveket és a területi beállítások szerinti elemzést.
java.util
Az objektumokat összesítő adatstruktúrák állnak a java.util csomag középpontjában . A csomag tartalmazza a Collections API-t , egy szervezett adatstruktúra-hierarchiát, amelyet nagymértékben befolyásolnak a tervezési minták szempontjai.
Speciális célú csomagok
java.applet
A Java kisalkalmazások létrehozásának támogatására létrehozott java.applet csomag lehetővé teszi az alkalmazások hálózatról történő letöltését és egy őrzött homokozóban történő futtatását. A homokozóra biztonsági korlátozásokat lehet egyszerűen bevezetni. A fejlesztő például alkalmazhat digitális aláírást egy kisalkalmazásra, ezáltal biztonságosnak jelölve. Ez lehetővé teszi a felhasználó számára, hogy engedélyt adjon az appletnek korlátozott műveletek végrehajtására (például a helyi merevlemez elérésére), és eltávolítja a homokozó korlátozásainak egy részét vagy egészét. A digitális tanúsítványokat a tanúsító hatóságok adják ki .
java.bab
A java.beans csomag tartalmazza a babok fejlesztésének és kezelésének különféle osztályait, a JavaBeans architektúrája által definiált újrafelhasználható komponenseket . Az architektúra mechanizmusokat biztosít az alkatrészek tulajdonságainak manipulálására és események indítására, amikor ezek a tulajdonságok megváltoznak.
A ban található API-kat java.beans egy babszerkesztő eszközzel szánják felhasználni, amelyben a bab kombinálható, testreszabható és manipulálható. A babszerkesztők egyik típusa egy GUI- tervező integrált fejlesztői környezetben .
java.awt
Az java.awt Absztrakt ablak eszköztár hozzáférést biztosít a GUI- modulok alapkészletéhez az alapul szolgáló natív platform widgetkészlete, a GUI esemény alrendszer magja, valamint a natív ablakos rendszer és a Java alkalmazás közötti interfész alapján. Azt is előírja, számos alapvető elrendezés menedzserek , a Adatátvitel csomag használható a vágólap és drag and drop , hogy a felület beviteli eszközök , mint például az egerek és billentyűzetek , valamint hozzáférést biztosít a tálcán a támogató rendszerek. Ez a csomag, valamint a javax.swing JDK 6 legtöbb enumját (összesen 7-et) tartalmazza.
java.rmi
A java.rmi csomag Java távoli metódus meghívást biztosít a két JVM-ben futó java alkalmazás közötti távoli eljáráshívások támogatására .
java.biztonság
A java.security csomag tartalmazza a biztonság támogatását, beleértve az üzenet-összefoglaló algoritmust .
java.sql
A JDBC API ( SQL adatbázisok elérésére használt ) megvalósítása csoportosítva van a java.sql csomagba.
javax.rmi
A javax.rmi csomag támogatja az alkalmazások közötti távoli kommunikációt, az RMI over IIOP protokoll használatával. Ez a protokoll egyesíti az RMI és a CORBA jellemzőit.
Java SE Core Technologies - CORBA / RMI-IIOP
javax.hinta
A Swing olyan rutinok gyűjteménye java.awt , amelyek platformtól független widget-eszközkészletet nyújtanak . javax.swing a 2D rajzolási rutinokat használja a felhasználói felület összetevőinek megjelenítéséhez ahelyett, hogy az alapul szolgáló natív operációs rendszer GUI támogatására támaszkodna.
Ez a csomag tartalmazza a legtöbb osztályt (összesen 133) a JDK 6-ban. Ez a csomag, valamint a java.awt JDK 6 összesített összes számát (összesen 7-et) tartalmazza. Támogatja a dugaszolható megjelenést és érzeteket (PLAF), hogy utánozza a mögöttes natív rendszerből származóakat. Tervezési minták beszivárog a rendszer, különösen a módosítás a modell-nézet-vezérlő minta, ami fellazítja a kapcsolási közötti funkció és a megjelenést. Az egyik következetlenség az, hogy (a J2SE 1.3-tól kezdve) a betűkészleteket a mögöttes natív rendszer rajzolja, és nem a Java, ami korlátozza a szöveg hordozhatóságát. Lehetséges megoldások, például a bitkép-betűtípusok használata. Általában "elrendezéseket" használnak, és az elemek esztétikailag konzisztens GUI-ban tartják a platformokat.
javax.swing.text.html.parser
A javax.swing.text.html.parser csomag tartalmazza a hibatűrő HTML elemzőt, amelyet különféle böngészők és webrobotok írásához használnak.
javax.xml.bind.annotation
A javax.xml.bind.annotation csomag a legtöbb Jegyzet Típust tartalmazza (összesen 30) a JDK 6-ban. Meghatározza a Java programelemek XML séma leképezéshez történő testreszabásának kommentárjait.
OMG csomagok
org.omg.KORBA
A org.omg.CORBA csomag támogatja az alkalmazások közötti távoli kommunikációt az Általános Inter-ORB protokoll használatával, és támogatja a közös objektumkérés-közvetítő architektúra egyéb jellemzőit . Az RMI-vel és az RMI-IIOP-val megegyezően ez a csomag objektumok távoli metódusainak hívására szolgál más virtuális gépeken (általában hálózaton keresztül).
Ez a csomag tartalmazza a legtöbb Exception osztályt (összesen 45) a JDK 6-ban. Minden kommunikációs lehetőség közül a CORBA különféle nyelvek között hordozható; ezzel együtt azonban még összetettebb.
Ezeket a csomagokat elavulták a Java 9-ben, és eltávolították a Java 11-ből.
org.omg.PortableInterceptor
A org.omg.PortableInterceptor csomag a legtöbb interfészt tartalmazza (összesen 39) a JDK 6-ban. Ez egy olyan mechanizmust biztosít az ORB-kampók regisztrálásához, amelyeken keresztül az ORB-szolgáltatások elfogják az ORB normál végrehajtási folyamatát.
Biztonság
Számos kritikus biztonsági rést jelentettek. Az Oracle biztonsági figyelmeztetései a Java SE-hez jelentik a biztonsággal kapcsolatos kritikus javításokat.