Biblioteca de clase Java - Java Class Library
Class Library Java ( JCL ) este un set de biblioteci încărcate dinamic care Java Virtual Machine (JVM) limbi pot apela la momentul execuției . Deoarece platforma Java nu depinde de un sistem de operare specific , aplicațiile nu se pot baza pe niciuna dintre bibliotecile native pentru platformă. În schimb, platforma Java oferă un set cuprinzător de biblioteci de clase standard , care conține funcțiile comune sistemelor de operare moderne.
JCL are trei scopuri în cadrul JVM:
- La fel ca alte biblioteci de cod standard , acestea oferă programatorului un set bine cunoscut de facilități utile, cum ar fi clasele de containere și procesarea expresiei regulate .
- Biblioteca oferă o interfață abstractă pentru sarcini care ar depinde în mod normal în mare măsură de hardware și de sistemul de operare, cum ar fi accesul la rețea și accesul la fișiere .
- Este posibil ca unele platforme subiacente să nu accepte toate caracteristicile pe care le așteaptă o aplicație Java. În aceste cazuri, implementarea bibliotecii poate fie să emuleze acele caracteristici, fie să ofere un mod consecvent de a verifica prezența unei caracteristici specifice.
Implementare și configurare
Biblioteca de clase Java ( JCL ) este scrisă aproape în întregime în Java, cu excepția părților care necesită acces direct la hardware și sistem de operare (cum ar fi pentru I / O sau grafică bitmap ). Clasele care oferă acces la aceste funcții folosesc în mod obișnuit împachetări Java Native Interface pentru a accesa API-urile sistemului de operare .
Aproape toată JCL este stocată într-un singur fișier de arhivă Java numit „rt.jar” care este furnizat cu distribuțiile JRE și JDK . Biblioteca de clase Java (rt.jar) se află în calea de pornire implicită bootstrap și nu trebuie să apară în calea de clasă declarată pentru aplicație. Runtime -ul utilizează încărcător clasa bootstrap pentru a găsi JCL.
Sistemul Java Module (parte a versiunii Java 9 ) a spart fișierul JAR "rt.jar" monolitic și a modularizat JCL în sine în mai multe module cu dependențe specificate.
Conformitate
Orice implementare Java trebuie să treacă testele Java Technology Compatibility Kit pentru conformitate, care include teste JCL.
Caracteristici principale
Funcțiile JCL sunt accesate prin intermediul claselor furnizate în pachete .
-
java.langconține clase și interfețe fundamentale strâns legate de sistemul de limbă și runtime . -
I / O și crearea de rețele de acces platforma sistemul de fișiere , și în general rețele prin intermediul
java.io,java.nioșijava.netpachete. Pentru rețea, SCTP este disponibil princom.sun.nio.sctp. -
Pachetul de matematică :
java.mathoferă expresii matematice și evaluare, precum și tipuri de date de număr zecimal și număr întreg. - Colecții și utilități: structuri de date încorporate și clase de utilități, pentru expresii regulate , concurență , înregistrare și compresie de date .
-
Grafică GUI și 2D : pachetul AWT (
java.awt) operațiuni GUI de bază și se leagă de sistemul nativ de bază. De asemenea, conține API-ul 2D Graphics. Swing Pachetul (javax.swing) este construit pe AWT și oferă o platformă independentă set de instrumente widget , precum și un aspect Conectabile și simt . De asemenea, se ocupă cu componentele textului editabile și non-editabile. - Sunet: interfețe și clase pentru citirea, scrierea, secvențierea și sintetizarea datelor sonore.
- Text:
java.textse ocupă de text, date, numere și mesaje. - Pachet de imagini:
java.awt.imageșijavax.imageiofurnizați API-uri pentru a scrie, citi și modifica imagini. - XML : transformări SAX , DOM , StAX , XSLT , XPath și diverse API-uri pentru servicii Web , ca protocol SOAP și JAX-WS .
- API-uri CORBA și RMI , inclusiv un ORB încorporat
- Securitatea este asigurată de
java.securityși serviciile de criptare sunt furnizate dejavax.crypto. -
Baze de date : acces la baze de date SQL prin
java.sql - Acces la motoarele de scriptare:
javax.scriptpachetul oferă acces la orice limbaj de scriptare conform . -
Appleturi :
java.appletpermite aplicațiilor să fie descărcate printr-o rețea și să ruleze într-un sandbox protejat -
Java Beans :
java.beansoferă modalități de manipulare a componentelor reutilizabile. - Introspecție și reflecție: java.lang.Class reprezintă o clasă, dar alte clase precum Method și Constructor sunt disponibile în
java.lang.reflect.
Licențierea
Licențe anterioare
Înainte de lansarea OpenJDK, JDK se baza pe o licență proprietară .
În urma promisiunii lor de a lansa un JDK complet construibil bazat pe un cod sursă aproape complet gratuit și deschis în prima jumătate a anului 2007, Sun a lansat codul sursă complet al Bibliotecii de clase sub GPL pe 8 mai 2007, cu excepția unor părți limitate care au fost autorizate de Sun de la terți care nu doreau ca codul lor să fie eliberat sub o licență open-source. Obiectivul Sun a fost să înlocuiască piesele care rămân proprietare și sursă închisă cu implementări alternative și să facă Biblioteca de clase complet gratuită și open source.
Până în decembrie 2010, partea rămasă gravată a JDK a fost pusă la dispoziție de Sun, apoi de Oracle, ca fișiere binare care erau necesare pentru a construi JDK, dar nu erau necesare pentru a-l rula. începând din mai 2007, singura parte a bibliotecii de clasă care a rămas proprietară și închisă (4% din mai 2007 pentru OpenJDK 7 și mai puțin de 1% din mai 2008 și OpenJDK 6) a fost:
- Implementarea SNMP .
De la prima versiune din mai 2007, Sun, cu ajutorul comunității, a lansat ca open-source sau a înlocuit cu alternative open-source aproape tot codul grevat:
- Tot codul motorului audio, inclusiv sintetizatorul software , a devenit open source. Sintetizatorul software cu sursă închisă a fost înlocuit de un nou sintetizator dezvoltat special pentru OpenJDK numit Gervill ,
- Toate clasele de criptografie au fost lansate ca open-source,
- Codul care scalează și rasterizează fonturile folosește open source FreeType
- Gestionarea culorii native folosește LittleCMS open-source . Există un strat conectabil în JDK, astfel încât versiunea comercială a Java poate utiliza sistemul original de gestionare a culorilor și OpenJDK poate utiliza LittleCMS.
- Anti-aliasing grafica rasterizare de cod utilizează open source Pesti randarii utilizat în cadrul fonem proiectului.
- JavaScript plugin - ul este open source (The motorul JavaScript în sine a fost open source de la început).
Versiune open source
Începând din decembrie 2010, toate așa-numitele dopuri binare au fost înlocuite cu înlocuiri open source , făcând întregul JDK deschis.
Implementări alternative
GNU Classpath este cealaltă bibliotecă principală de clase de software liber pentru Java. Spre deosebire de alte implementări, implementează doar Biblioteca de clase și este folosit de multe runtime Java gratuite (cum ar fi Kaffe , SableVM , JamVM ).
Apache Harmony a fost o altă bibliotecă de clasă software gratuită. Scopul său a fost de a implementa celelalte părți ale stivei Java ( mașină virtuală , compilator și alte instrumente necesare pentru orice implementare Java ).
Vezi si
- Platformă Java, ediție standard
- Lista API-urilor Java
- OpenJDK
- Implementări Java gratuite
- Biblioteca standard
- Applet Java
Referințe
linkuri externe
- Java SE Pagina principală
- Java SE 10 API Javadocs
- Documentația API Java SE
- Kituri de dezvoltare software Java (stare din august 2006):