Java Sınıf Kitaplığı - Java Class Library
Java Sınıf Kütüphanesi ( JCL ) kümesidir dinamik olarak yüklenebilen kütüphaneler olduğunu Java Virtual Machine (JVM) dilleri de çağırabilir çalışma zamanında . Çünkü Java Platform belirli bağlı değildir işletim sistemi , uygulamalar platformu yerli kütüphanelerden herhangi güvenemez. Bunun yerine Java Platformu, modern işletim sistemlerinde ortak olan işlevleri içeren kapsamlı bir standart sınıf kitaplıkları seti sağlar .
JCL, JVM içinde üç amaca hizmet eder:
- Diğer standart kod kitaplıkları gibi , programcıya, kapsayıcı sınıfları ve düzenli ifade işleme gibi iyi bilinen bir dizi yararlı özellik sağlar.
- Kitaplık, normalde büyük ölçüde donanıma ve işletim sistemine bağlı olan ağ erişimi ve dosya erişimi gibi görevler için soyut bir arayüz sağlar .
- Bazı temel platformlar, bir Java uygulamasının beklediği tüm özellikleri desteklemeyebilir. Bu durumlarda, kitaplık uygulaması bu özellikleri taklit edebilir veya belirli bir özelliğin varlığını kontrol etmek için tutarlı bir yol sağlayabilir.
Uygulama ve yapılandırma
Java Sınıf Kitaplığı ( JCL ), donanıma ve işletim sistemine doğrudan erişime ihtiyaç duyan bölümler ( G / Ç veya bit eşlem grafikleri gibi ) dışında neredeyse tamamen Java ile yazılmıştır . Bu işlevlere erişim sağlayan sınıflar, işletim sistemi API'lerine erişmek için genellikle Java Yerel Arabirimi sarmalayıcılarını kullanır .
Hemen hemen tüm JCL, JRE ve JDK dağıtımlarıyla sağlanan "rt.jar" adlı tek bir Java arşiv dosyasında saklanır . Java Sınıf Kitaplığı (rt.jar), varsayılan önyükleme sınıf yolunda bulunur ve uygulama için bildirilen sınıf yolunda görünmesi gerekmez . Çalışma zamanı , JCL'yi bulmak için bootstrap sınıfı yükleyiciyi kullanır.
Java Modülü Sistemi (parçası Java 9 sürümü) monolitik "rt.jar" JAR dosyasını kırdı ve belirtilen bağımlılıkları ile çeşitli modüllerde JCL kendisi modularized.
Uygunluk
Herhangi bir Java uygulaması , JCL testlerini içeren Java Teknolojisi Uyumluluk Kiti testlerini geçmelidir .
Ana Özellikler
JCL Özelliklerine, paketlerde sağlanan sınıflar aracılığıyla erişilir .
-
java.lang
dil ve çalışma zamanı sistemine yakından bağlı temel sınıfları ve arayüzleri içerir . -
I / O ve ağ erişim platformu dosya sistemi ve daha genel ağlar yoluyla
java.io
,java.nio
vejava.net
paketler. Ağ oluşturma için SCTP aracılığıyla kullanılabilircom.sun.nio.sctp
. -
Matematik paketi :
java.math
matematiksel ifadeler ve değerlendirmenin yanı sıra rasgele kesinlikte ondalık ve tam sayı veri türleri sağlar. - Koleksiyonlar ve Yardımcı Programlar: Düzenli ifadeler , Eşzamanlılık , günlüğe kaydetme ve Veri sıkıştırma için yerleşik Koleksiyon veri yapıları ve yardımcı program sınıfları .
-
GUI ve 2D Graphics : AWT paketi (
java.awt
) temel GUI işlemleri ve temeldeki yerel sisteme bağlanır. Ayrıca 2D Graphics API içerir. Salıncak paketi (javax.swing
) AWT üzerine inşa edilmiş ve bir platformdan bağımsız sağlamaktadır Widget araç , hem de bir Geçmeli görünümünü ve kullanımını . Ayrıca düzenlenebilir ve düzenlenemez metin bileşenleri ile ilgilenir. - Ses: ses verilerinin okunması, yazılması, sıralanması ve sentezlenmesi için arayüzler ve sınıflar .
- Metin:
java.text
metin, tarihler, sayılar ve mesajlarla ilgilenir. - Görüntü paketi:
java.awt.image
vejavax.imageio
görüntüleri yazmak, okumak ve değiştirmek için API'ler sağlar. - XML : SAX , DOM , StAX , XSLT dönüşümleri , XPath ve Web servisleri için çeşitli API'ler , SOAP protokolü ve JAX-WS olarak .
- Yerleşik ORB dahil CORBA ve RMI API'leri
- Güvenlik tarafından sağlanır
java.security
ve şifreleme hizmetleri tarafından sağlanırjavax.crypto
. -
Veritabanları : SQL veritabanlarına erişim yoluyla
java.sql
- Komut Dosyası motorlarına
javax.script
erişim : Paket, herhangi bir uyumlu Komut Dosyası diline erişim sağlar . -
Applet'ler :
java.applet
uygulamaların bir ağ üzerinden indirilmesine ve korumalı bir sanal alanda çalışmasına izin verir -
Java Beans :
java.beans
yeniden kullanılabilir bileşenleri işlemek için yollar sağlar. - İç gözlem ve yansıma: java.lang.Class bir sınıfı temsil eder, ancak Method ve Constructor gibi diğer sınıflar
java.lang.reflect
.
Lisanslama
Önceki lisanslar
OpenJDK'nın yayınlanmasından önce, JDK tescilli bir lisansa dayanıyordu .
2007'nin ilk yarısında neredeyse tamamen ücretsiz ve açık kaynaklı koda dayalı, tamamen oluşturulabilir bir JDK yayınlama sözünün ardından , Sun , Sınıf Kitaplığı'nın tüm kaynak kodunu 8 Mayıs 2007'de GPL kapsamında yayınladı. Sun tarafından kodlarının açık kaynak lisansı altında yayınlanmasını istemeyen üçüncü şahıslardan lisans almıştır. Sun'ın amacı, tescilli ve kapalı kaynak olarak kalan parçaları alternatif uygulamalarla değiştirmek ve Sınıf Kitaplığını tamamen ücretsiz ve açık kaynaklı hale getirmekti.
Aralık 2010 tarihine kadar, JDK kalan İpotekli kısmı tarafından sunulmuştur Sun sonra Oracle olarak İkili Fiş JDK oluşturmak için gerekli fakat çalıştırmak için gerekli değildi. Mayıs 2007 itibarıyla, Sınıf kitaplığının tescilli ve kapalı kaynak olarak kalan tek bölümü (Mayıs 2007 itibarıyla OpenJDK 7 için% 4 ve Mayıs 2008 ve OpenJDK 6 itibarıyla% 1'den az) şöyleydi:
- SNMP uygulanması.
İlk Mayıs 2007 sürümünden bu yana Sun, topluluğun yardımıyla açık kaynak olarak piyasaya sürüldü veya neredeyse tüm ipotekli kodlar açık kaynak alternatifleriyle değiştirildi:
- Yazılım sentezleyici dahil tüm ses motoru kodu açık kaynak haline geldi. Kapalı kaynaklı yazılım sentezleyicinin yerini, Gervill adlı OpenJDK için özel olarak geliştirilmiş yeni bir sentezleyici almıştır .
- Tüm kriptografi sınıfları açık kaynak olarak yayınlandı,
- Yazı tiplerini ölçeklendiren ve rasterleştiren kod, açık kaynaklı FreeType kullanır
- Yerel renk yönetimi , açık kaynaklı LittleCMS kullanır . JDK'da takılabilir bir katman vardır, böylece Java'nın ticari sürümü orijinal, tescilli renk yönetim sistemini kullanabilir ve OpenJDK LittleCMS'yi kullanabilir.
- Anti-aliasing grafik rasterleştirici kodu kullanılan açık kaynak Balık renderer kullanır phoneme projesi.
- JavaScript eklentisi açık kaynak (olan JavaScript motoru kendisi baştan açık kaynak oldu).
Açık kaynak sürümü
Aralık 2010'dan başlayarak, tüm sözde ikili eklentiler , açık kaynaklı değiştirmelerle değiştirilerek JDK'nın tamamı açıldı.
Alternatif uygulamalar
GNU Classpath , Java için diğer ana özgür yazılım sınıfı kitaplığıdır. Diğer uygulamaların aksine, yalnızca Sınıf Kitaplığını uygular ve birçok ücretsiz Java çalışma zamanı ( Kaffe , SableVM , JamVM gibi ) tarafından kullanılır.
Apache Harmony , başka bir özgür yazılım sınıfı kitaplığıydı. Amacı, Java yığınının diğer bölümlerini ( Sanal Makine , Derleyici ve herhangi bir Java uygulaması için gerekli diğer araçlar ) uygulamaktı .
Ayrıca bakınız
- Java Platformu, Standart Sürüm
- Java API'lerinin listesi
- OpenJDK
- Ücretsiz Java uygulamaları
- Standart kitaplık
- Java uygulaması
Referanslar
Dış bağlantılar
- Java SE Ana sayfası
- Java SE 10 API Javadocs
- Java SE API belgeleri
- Java yazılım geliştirme kitleri (Ağustos 2006 itibarıyla durum):