A Java Platform, Standard Edition vagy Java SE egy széles körben elterjedt és használt platform a Java nyelv programozásához. A Java platform használható általános célú hordozhatóalkalmazások készítéséhez, telepítéséhez, futtatásához. Gyakorlatilag a Java SE tartalmazza a Java virtuális gépet, amelyeken a Java programok futnak (futtatókörnyezet), valamint java osztály könyvtárak halmazát (ez az ún. csomagok, angolul: package), melyek biztosítják a fájlrendszer, a hálózatok, GUI komponensek használatát a java programokon belülről.
Nevezéktan, sztenderdek és specifikációk
A Java SE-t korábban nevezték Java 2 Platformnak, Standard Editionnak, illetve J2SE-nak is. Ez utóbbi elnevezés az 1.2-es verziótól egészen 1.5-ig verzióig volt használatos. Az "SE" használatos arra, hogy megkülönböztethető legyen az alap platform az Enterprise Edition-től (Java EE) valamint a Micro Edition-tól (Java ME). A "2" eredetileg azt hivatott nyomatékosítani, hogy lényeges változást hozott az 1.2-es változat, de az 1.6-ban már eltávolították a névből. A nevezéktan sokszor változott a Java verziók történetében. A J2SE 1.4 (Merlin) verziótól kezdve a Java SE-t a Java Community Process keretében fejlesztették tovább. A JSR (Java Specification Requests) 59 egy összefoglaló specifikáció volt a J2SE 1.4-hez, a JSR 176 pedig a J2SE 5.0 (Tiger)-hez, a Java SE 6 (Mustang)-ot pedig a JSR 270 alatt adták ki.
A Java Platform, Enterprise Edition (Java EE) egy kapcsolódó specifikáció halmaz, amelynek megvalósítása tartalmazza az összes Java SE osztály könyvtárat, valamint számos más olyan könyvtárat, amelyek sokkal jobban használhatók a szervereken futó programok számára, ellentétben azokkal, melyek munkaállomásokon futnak.
A Java Platform, Micro Edition (Java ME) szintén egy kapcsolódó specifikáció halmaz, mely azt a célt szolgálja, hogy hitelesített Java API gyűjteményt biztosítson olyan szoftver fejlesztések számára, melyek a kevés- és korlátozott erőforrással rendelkező eszközökön (mint pl. a mobiltelefonok, PDAk és set-top boxok) valósulnak meg.
A java.langJava csomag alapvető nyelv- és futtatókörnyezet közeli osztályokat és interfészeket tartalmaz, beleértve a gyökér osztályokat is. A legfontosabbak a következők: osztály hierarchia, a nyelv közeli definíciós osztályok, alap kivétel osztályok, matematikai metódusokat biztosító osztályok, szálkezelést biztosító osztályok, biztonsági funkciók, valamint számos információt visszaadó osztályok, melyeket az alatta lévő natív rendszerből biztosít a java. Ez a csomag 22 Exception osztályt tartalmaz a 32-ből, melyet a biztosít.
A főbb osztályok a java.lang csomagban a következők:
Object – a gyökere az teljes osztály hierarchiának.
Math és StrictMath – ellátják az alap matematikai funkciókat a rendszerben, mint pl., sin, cosin, és négyzetgyök számítást (StrictMath is a J2SE 1.3 óta).
Alap kivétel osztályokat dob nyelvi szinten, továbbá más általános kivételeket is.
A java.lang csomag osztályai automatikusan be lesznek importálva minden forrás fájlba, külön megjelölés nélkül.
java.lang.ref
java.lang.reflect
Technikák
Két alapvető technika létezik a reflection-ban:
Discovery
java.io
A java.io csomag olyan osztályokat tartalmaz, melyek támogatják az inputot és outputot. A csomagban lévő osztályok elsődlegesen stream-orientáltak; habár tartalmaz véletlen elérésűfájlokhoz is osztályt. A központi osztályok ebben a csomagban a InputStream és a OutputStream, amelyek abstract alap osztályok kifejezetten a bájt streamek olvasására és írására. A Reader-rel és Writer-rel kapcsolatos osztályok absztrakt alaposztályok kifejezetten a karakter stream-ek olvasásához és írásához. A csomag tartalmaz néhány vegyes osztályt is, melyek támogatják a host fájlrendszerrel kapcsolatos interakciókat.
A javax.rmi csomag támogatást nyújt az alkalmazások közötti távoli kommunikációhoz az RMI az IIOP protokoll feletti használatával. Ez a protokoll egyesíti az RMI és CORBA funkcionalitását.[1]
A javax.swing.text.html.parser csomag hibatűrő HTML elemzőt biztosít. Felhasználásával web böngészők és webes robotok írhatók.
javax.xml.bind.annotation
A javax.xml.bind.annotation csomag nagy számú annotáció tipust tartalmaz (összességében 30-at) a JDK 6-ban. Definiál annotációkat a Java program elemekeinek testreszabásához a XML séma mappelésekhez.