Java (programmalastırıw tili)

**Java** — joqarı dárejeli, ulıwma maqsetli, yad ushın qáwipsiz, obyektke baǵdarlanǵan programmalastırıw tili. Ol baǵdarlamashılarǵa «bir ret jazıp, hámme jerde iske túsiriwge» (WORA) imkaniyat beriwge arnalǵan, yaǵnıy kompilyaciyalanǵan Java kodı Javanı qollap-quwatlaytuǵın barlıq platformalarda qayta kompilyaciyalawdı talap etpesten isley alatuǵının ańlatadı. Java qosımshaları, ádette, tiykarǵı kompyuter arxitekturasına qaramastan, hár qanday Java virtual mashinası (JVM) arqalı orınlanatuǵın bayt-kodqa kompilyaciyalanadı. Javanıń sintaksisi C hám C++ tillerine uqsas, biraq olardıń ekewine qaraǵanda tómen dárejeli imkaniyatları azıraq. Java orınlaw ortalıǵı ádettegi kompilyaciyalanatuǵın tillerde ushıraspaytuǵın dinamikalıq imkaniyatlardı (mısalı, refleksiya hám orınlaw waqtında kodtı modifikaciyalaw) usınadı.

Java shıǵarılǵannan keyin tez arada ataqlılıqqa eristi hám sol waqıttan berli belgili programmalastırıw tili bolıp kelmekte. GitHubtıń maǵlıwmatları boyınsha, 2022-jılı Java eń ataqlı úshinshi programmalastırıw tili boldı. Ol elege shekem keńnen ataqlı bolsa da, sońǵı jılları JVM'dı qollanatuǵın basqa tillerdiń tanımalılıǵı artıwı menen Javadan paydalanıw áste-aqırın tómenlep barmaqta.

Javanı Djeyms Gosling Sun Microsystems kompaniyasında islep shıqqan. Ol 1995-jıldıń may ayında Sun kompaniyasınıń Java platformasınıń tiykarǵı komponenti retinde shıǵarıldı. Túpnusqa hám etalon ámelge asırıwdaǵı Java kompilyatorları, virtual mashinaları hám klasslar kitapxanaları Sun tárepinen menshikli licenziyalar tiykarında shıǵarılǵan. 2007-jıldıń may ayına kelip, Java Community Process specifikaciyalarına muwapıq, Sun óziniń kópshilik Java texnologiyaların tek ǵana GPL-2.0 licenziyası tiykarında qayta licenziyaladı. 2010-jılı Sundı satıp alǵan Oracle kompaniyası óziniń HotSpot Java Virtual Machine-ın usınadı. Degen menen, rásmiy etalon ámelge asırıw - bul OpenJDK JVM bolıp, ol kópshilik baǵdarlamashılar tárepinen qollanılatuǵın ashıq kodlı programmalıq támiynat hám derlik barlıq Linux distributivleri ushın standart JVM bolıp tabıladı.

2025-jıldıń mart ayındaǵı Java 24 aǵımdaǵı versiya bolıp esaplanadı. Java 8, 11, 17 hám 21 - uzaq múddetli qollap-quwatlaw versiyaları bolıp, olarǵa elege shekem texnikalıq xızmet kórsetilmekte.

## Tariyxı

Djeyms Gosling, Mayk Sheridan hám Patrik Noton 1991-jıldıń iyun ayında Java tili joybarın basladı. Java dáslep interaktiv televidenie ushın islep shıǵılǵan, biraq ol sol waqıttaǵı cifrlı kabelli televidenie sanaatı ushın júdá rawajlanǵan edi. Til dáslebinde Goslingtiń keńsesiniń sırtında turǵan emen tereginiń húrmetine Oak dep atalǵan. Keyinirek joybar Green ataması menen belgili boldı hám aqırında Indoneziyadan kelip shıqqan kofe túri - Java kofesiniń atı menen Java dep qayta ataldı. Gosling Javanı sistemalı hám ámeliy baǵdarlamashılarǵa tanıs bolatuǵın C/C++ stilindegi sintaksis penen islep shıqqan.

Sun Microsystems 1996-jılı Java 1.0 retinde birinshi jámiyetshilikke usınılǵan implementaciyasın shıǵardı. Ol ataqlı platformalarda biypul orınlaw ortalıqların usınıp, «bir ret jaz, hámme jerde iske túsir» (WORA) funkcionallıǵın wáde etti. Jetkilikli qáwipsiz hám konfiguraciyalanatuǵın qáwipsizlikke iye bolıp, ol tarmaqqa hám fayllarǵa kiriwdi sheklewge ruqsat berdi. Iri veb-brauzerler tez arada veb-betler ishinde Java appletlerin iske túsiriw imkaniyatın qostı, hám Java tez arada tanımal bola basladı. Java 1.0 kompilyatorı Artur van Xoff tárepinen Java 1.0 tili specifikaciyasına qatań sáykes keliwi ushın Javada qayta jazıldı. Java 2 niń (dáslep J2SE 1.2 retinde 1998-jıldıń dekabr ayında - 1999-jılları shıǵarılǵan) payda bolıwı menen, jańa versiyalarda hár qıylı platformalar ushın bir neshe konfiguraciyalar payda boldı. J2EE ádette server ortalıqlarında iske túsiriletuǵın kárxana qosımshaları ushın texnologiyalar hám API lerdi óz ishine alsa, J2ME mobil qosımshalar ushın optimallastırılǵan API lerge iye edi. Kompyuter versiyası J2SE dep qayta ataldı. 2006-jılı marketing maqsetlerinde Sun jańa J2 versiyaların sáykes túrde Java EE, Java ME hám Java SE dep qayta atadı.

1997-jılı Sun Microsystems Javanı rásmiylestiriw ushın ISO/IEC JTC 1 standartlar shólkemine, keyinirek Ecma Internationalǵa tilek-ótinishin bildirdi, biraq bul processten tez arada shıǵıp ketti. Java Community Process arqalı basqarılatuǵın de-fakto standart bolıp qalmaqta. Bir waqıtları Sun óziniń kópshilik Java implementaciyaların, olardıń menshikli programmalıq támiynat statusına qaramastan, biypul etip usındı. Sun Java Enterprise System sıyaqlı qánigelestirilgen ónimler ushın licenziyalardı satıw arqalı Javadan tabıs aldı.

2006-jıl 13-noyabrde Sun óziniń Java virtual mashinasınıń (JVM) úlken bólegin tek ǵana GPL-2.0 licenziyası shártlerine muwapıq biypul hám ashıq kodlı programmalıq támiynat (FOSS) retinde shıǵardı. 2007-jıl 8-mayda Sun bul processti juwmaqlap, Sun avtorlıq huqıqına iye bolmaǵan kodtıń kishkene bir bóleginen basqa, óziniń JVM tiykarǵı kodınıń barlıǵın biypul programmalıq támiynat/ashıq kodlı tarqatıw shártleri tiykarında qoljetimli etti.

Sun vice-prezidenti Rich Grin Sunnıń Javaǵa baylanıslı ideal roli evangelist retinde ekenligin ayttı. 2009–10-jılları Oracle Corporation Sun Microsystemstı satıp alǵannan keyin, Oracle ózin qatnasıw hám ashıqlıq jámiyetshiligin rawajlandırıwǵa úziliksiz umtılısı bar Java texnologiyasınıń basqarıwshısı dep atadı. Bul jaǵday tez arada Oracledıń Android SDK ishinde Javadan paydalanǵanı ushın Googleǵa qarsı sud isin ashıwına tosqınlıq etpedi (Android bólimin qarań).

2010-jıl 2-aprelde Djeyms Gosling Oracle degi jumısınan ketti.

2016-jıl yanvar ayında Oracle JDK 9 ǵa tiykarlanǵan Java orınlaw ortalıqları brauzer plaginin toqtatatuǵının járiyaladı.

Java programmalıq támiynatı noutbuklerden baslap maǵlıwmatlar oraylarına shekem, oyın konsollerinen baslap ilimiy superkompyuterlerge shekemgi kópshilik qurılmalarda isleydi.

Oracle (hám basqalar) eski versiyalardaǵı sheshilmegen qáwipsizlik máselelerine baylanıslı Javanıń eskirgen hám qollap-quwatlanbaytuǵın versiyaların óshirip taslawdı qatań usınıs etedi.

### Principleri
Java tilin jaratıwda bes tiykarǵı maqset bar edi:
# Ol ápiwayı, obyektke baǵdarlanǵan hám tanıs bolıwı kerek.
# Ol isenimli hám qáwipsiz bolıwı kerek.
# Ol arxitekturaǵa biytárep hám kóshiriwge qolaylı bolıwı kerek.
# Ol joqarı ónimdarlıq penen orınlanıwı kerek.
# Ol interpretaciyalanatuǵın, kóp aǵımlı hám dinamikalı bolıwı kerek.

### Versiyalar
2024-jıl noyabr ayına kelip, Java 8, 11, 17 hám 21 uzaq múddetli qollap-quwatlaw (LTS) versiyaları retinde qollap-quwatlanadı, al 2025-jıl sentyabrde shıǵarılatuǵın Java 25 kelesi jobalastırılǵan LTS versiyası boladı.

Oracle kompaniyası kommerciyalıq maqsette qollanıw ushın eskirgen Java 8 LTS versiyasınıń aqırǵı biypul ashıq jańalanıwın 2019-jıl yanvar ayında shıǵardı, biraq olar Java 8 di jeke maqsette qollanıw ushın ashıq jańalawlar menen sheklenbegen múddetke qollap-quwatlawdı dawam ettiredi. Adoptium sıyaqlı basqa satıwshılar OpenJDK nıń uzaq múddetli qollap-quwatlaw (LTS) versiyalarınıń biypul jıynaqların usınıwdı dawam etpekte. Bul jıynaqlar qosımsha qáwipsizlik jamawları hám qátelerdi dúzetiwlerdi óz ishine alıwı múmkin.

Javanıń tiykarǵı reliz versiyaları hám olardıń shıǵarılǵan sáneleri:

## Basılımlar
Sun kompaniyası hár qıylı qosımshalar ortalıqlarına arnalǵan Javanıń tórt basılımın anıqladı hám qollap-quwatlaydı hám óz API leriniń kóbisin usı platformalardıń birine tiyisli bolatuǵınday etip segmentlerge bóldi. Platformalar:
* Java Card – smart-kartalar ushın.
* Java Platform, Micro Edition (Java ME) – sheklengen resurslarǵa iye ortalıqlarǵa arnalǵan.
* Java Platform, Standard Edition (Java SE) – jumıs stanciyası ortalıqlarına arnalǵan.
* Java Platform, Enterprise Edition (Java EE) – iri bólistirilgen korporativlik yamasa Internet ortalıqlarına arnalǵan.

Java API lerindegi klasslar paketler dep atalatuǵın bólek toparlarǵa shólkemlestirilgen. Hárbir paket óz-ara baylanıslı interfeysler, klasslar, ishki paketler hám ayrıqsha jaǵdaylar jıynaǵın óz ishine aladı.

Sun sonday-aq, keyinirek standartlarǵa tiykarlanǵan Java ME konfiguraciya-profil jubı menen almastırılǵan Personal Java dep atalatuǵın basılımdı usınǵan.

## Orınlaw sisteması

### Java JVM hám bayt-kod
Javanıń tiykarǵı dizayn maqsetleriniń biri – bul portativlik, yaǵnıy Java platforması ushın jazılǵan programmalar jetkilikli orınlaw waqtında qollap-quwatlawǵa iye bolǵan hár qanday apparatlıq támiynat hám operaciyalıq sistema kombinaciyasında birdey islewi kerek. Buǵan Java tili kodın tikkeley arxitekturaǵa tán mashina kodına emes, al Java bayt-kodı dep atalatuǵın aralıq kóriniske kompilyaciyalaw arqalı erisiledi. Java bayt-kodınıń kórsetpeleri mashina kodına uqsas, biraq olar xost apparatlıq támiynatı ushın arnawlı jazılǵan virtual mashina (VM) tárepinen orınlanıwı ushın arnalǵan. Aqırǵı paydalanıwshılar ádette ózbetinshe Java qosımshaları ushın óz qurılmalarına ornatılǵan Java orınlaw ortalıǵın (JRE) yamasa Java appletleri ushın veb-brauzerdi qollanadı.

Standart kitapxanalar grafika, aǵımlar hám tarmaq sıyaqlı xostqa tán ózgesheliklerge erisiwdiń universal usılın usınadı.

Universal bayt-kodtı qollanıw kóshiriwdi ápiwayılastıradı. Degen menen, bayt-kodtı mashinalıq kórsetpelerge interpretaciyalawdıń qosımsha júklemesi interpretaciyalanatuǵın programmalardıń tuwrıdan-tuwrı orınlanatuǵın fayllarǵa qaraǵanda derlik bárqulla ásterek islewine sebep boldı. Orınlaw waqtında bayt-kodlardı mashina kodına kompilyaciyalaytuǵın dál waqtında (JIT) kompilyatorları erte basqıshlardan baslap engizilgen. Javanıń Hotspot kompilyatorı shın mánisinde bir kompilyator ishindegi eki kompilyator bolıp esaplanadı; hám GraalVM (mısalı, Java 11 ge kirgizilgen, biraq Java 16 dan baslap alıp taslanǵan) kóp dárejeli kompilyaciyaǵa imkaniyat beredi. Javanıń ózi platformaǵa ǵárezsiz bolıp, ol isleytuǵın belgili bir platformaǵa Java bayt-kodın sol platformanıń mashina tiline awdaratuǵın Java virtual mashinası (JVM) arqalı sáykeslestiriledi.

#### Ónimdarlıq
Javada jazılǵan programmalar C++ tilinde jazılǵanlarǵa qaraǵanda ásterek isleytuǵın hám kóbirek yad talap etetuǵını menen belgili. Biraq, Java programmalarınıń orınlaw tezligi 1997/1998-jılları Java 1.1 ushın dál waqtında kompilyaciyanıń engiziliwi, jaqsıraq kod analizin qollap-quwatlaytuǵın til ózgeshelikleriniń qosılıwı (mısalı, ishki klasslar, StringBuilder klası, opcional tastıyıqlawlar, hám t.b.) hám 2000-jılı HotSpottıń Sunnıń standart JVMine aylanıwı sıyaqlı Java virtual mashinasındaǵı optimallastırıwlar menen ádewir jaqsılandı. Java 1.5 penen ónimdarlıq java.util.concurrent paketiniń qosılıwı menen jaqsılandı, bul ConcurrentMaps hám basqa kóp yadrolı kollekciyalardıń bloklawsız ámelge asırılıwın óz ishine aladı, hám Java 1.6 da jáne de jetilistirildi.

### JVM emes
Ayırım platformalar Java ushın tuwrıdan-tuwrı apparatlıq támiynat qollap-quwatlawın usınadı; programmalıq támiynat bolǵan Java virtual mashinasınıń ornına Java bayt-kodın apparatlıq támiynatta orınlay alatuǵın mikrokontrollerler bar, hám ayırım ARM arxitekturasına tiykarlanǵan processorlar Jazelle opciyası arqalı Java bayt-kodın orınlaw ushın apparatlıq qollap-quwatlawǵa iye bolıwı múmkin edi, biraq bul qollap-quwatlaw ARMnıń házirgi implementaciyalarınıń kópshiliginde toqtatılǵan.

### Yadtı avtomat túrde basqarıw
Java obekttiń ómirlik ciklında yadtı basqarıw ushın avtomat shıǵındı jıynaǵıshtı qollanadı. Baǵdarlamashı obektlerdiń qashan jaratılatuǵının belgileydi, al Java orınlaw ortalıǵı obektler endi qollanılmay qalǵanda yadtı qaytarıw ushın juwapker boladı. Obektke hesh qanday siltemeler qalmaǵannan keyin, jetip bolmaytuǵın yad shıǵındı jıynaǵısh tárepinen avtomat túrde bosatılıwı múmkin boladı. Eger baǵdarlamashınıń kodı endi zárúr bolmaǵan obektke siltemeni uslap tursa, ásirese, endi kerek emes obektler házir de qollanılıp atırǵan konteynerlerde saqlansa, yadtıń aǵıp ketiwine uqsas jaǵday júz beriwi múmkin. Eger bar bolmaǵan obekt ushın metodlar shaqırılsa, null pointer exception (null kórsetkish ayrıqsha jaǵdayı) payda boladı.

Javanıń yadtı avtomat basqarıw modeliniń artında turǵan ideyalardıń biri – baǵdarlamashılardı yadtı qol menen basqarıw júginen azat etiw. Ayırım tillerde obektlerdi jaratıw ushın yad stekte jasırın túrde yamasa jıynaqtan (heap) anıq túrde ajıratıladı hám bosatıladı. Sońǵı jaǵdayda, yadtı basqarıw juwapkershiligi baǵdarlamashınıń juwapkershiliginde boladı. Eger programma obektti bosatpasa, yadtıń aǵıp ketiwi júz beredi. Eger programma aldın ala bosatılǵan yadqa kiriwge yamasa onı bosatıwǵa háreket etse, nátiyje anıqlanbaǵan hám boljaw qıyın boladı, hám programmanıń turaqsız bolıp qalıwı yamasa islemey qalıwı itimal. Bunı aqıllı kórsetkishlerdi qollanıw arqalı bir qatar sheshiwge boladı, biraq olar qosımsha júkleme hám qıyınshılıq tuwdıradı. Shıǵındılardı jıynaw logikalıq yad aǵıwlarınıń, yaǵnıy yadqa ele de silteme jasalǵan, biraq hesh qashan qollanılmaytuǵın jaǵdaylardıń aldın almaydı.

Shıǵındılardı jıynaw hár qanday waqıtta júz beriwi múmkin. Ideal jaǵdayda, bul programma háreketsiz bolǵanda júz beredi. Eger jıynaqta (heap) jańa obekt ajıratıw ushın bos yad jetkilikli bolmasa, onıń iske túsiwine kepillik beriledi; bul programmanıń bir máwritke toqtap qalıwına sebep bolıwı múmkin. Javada yadtı anıq basqarıw múmkin emes.

Java C/C++ stilindegi kórsetkishler arifmetikasın qollap-quwatlamaydı, onda obekt adreslerin arifmetikalıq túrde ózgertse boladı (mısalı, bir sandı qosıw yamasa alıw arqalı). Bul shıǵındı jıynaǵıshqa silteme berilgen obektlerdiń ornın ózgertiwge imkaniyat beredi hám tipler qáwipsizligi menen qorǵanıwın támiyinleydi.

C++ hám basqa da ayırım obektke baǵdarlanǵan tillerdegi sıyaqlı, Javanıń primitiv maǵlıwmatlar tipleriniń ózgeriwshileri, primitiv emes maǵlıwmatlar tipleri ushın ádettegidey jıynaqta (heap) emes, al tikkeley aymaqlarda (obektler ushın) yamasa stekte (metodlar ushın) saqlanadı (biraq shıǵıp ketiw analizine qarıń). Bul Javanı islep shıǵıwshılardıń ónimdarlıq sebeplerine baylanıslı sanalı túrde qabıl etken sheshimi boldı.

Java bir neshe túrdegi shıǵındı jıynaǵıshlardı óz ishine aladı. Java 9 dan baslap, HotSpot standart retinde Garbage First Garbage Collector (G1GC) shıǵındı jıynaǵıshın qollanadı. Biraq, jıynaqtı basqarıw ushın qollanıwǵa bolatuǵın bir neshe basqa da shıǵındı jıynaǵıshlar bar, mısalı, Java 11 de engizilgen Z Garbage Collector (ZGC) hám Java 12 de engizilgen, biraq Oracle tárepinen islep shıǵarılǵan OpenJDK jıynaqlarında ushıraspaytuǵın Shenandoah GC. Onıń ornına, Shenandoah dı Eclipse Temurin sıyaqlı úshinshi táreplerdiń OpenJDK jıynaqlarında tabıwǵa boladı. Javadaǵı kópshilik qosımshalar ushın G1GC jetkilikli. Javanıń aldınǵı versiyalarında, mısalı, Java 8 de, Parallel Garbage Collector standart shıǵındı jıynaǵısh retinde qollanılǵan.

Yadtı basqarıw mashqalasınıń sheshilgenligi baǵdarlamashını tarmaq yamasa maǵlıwmatlar bazası baylanısları, fayl deskriptorları, hám t.b. sıyaqlı basqa túrdegi resurslardı, ásirese ayrıqsha jaǵdaylar bolǵanda, durıs basqarıw júginen azat etpeydi.

## Sintaksis

Java sintaksisi tiykarınan C++ hám C tillerinen tásirlengen. Strukturalıq, ulıwma hám obyektke baǵdarlanǵan programmalastırıw sintaksisin birlestiretuǵın C++ tilinen ayırmashılıǵı, Java derlik tek ǵana obyektke baǵdarlanǵan til retinde qurılǵan. Barlıq kod klasslardıń ishinde jazıladı hám ónimdarlıqtı asırıw maqsetinde obyekt bolıp esaplanbaytuǵın primitiv maǵlıwmat tiplerinen (yaǵnıy, pútin sanlar, haqıyqıy sanlar, logikalıq mánisler hám belgiler) basqa hárbir maǵlıwmat elementi obyekt bolıp tabıladı.

C++-ten ayırmashılıǵı, Java operatorlardı artıqsha júklewdi yamasa klasslar ushın kóp miyrasxorlıqtı qollap-quwatlamaydı, biraq interfeysler ushın kóp miyrasxorlıq qollap-quwatlanadı.

Java C++ tilindegige uqsas kommentariyalarden paydalanadı. Kommentariyalardıń úsh túrli usılı bar: eki sızıqsha (//) menen belgilengen bir qatarlı usıl, /* penen baslanıp, / menen tamamlanatuǵın kóp qatarlı usıl, hám /* penen baslanıp, */ menen tamamlanatuǵın Javadoc kommentariya usılı. Javadoc kommentariya usılı paydalanıwshıǵa programma ushın hújjetlerdi jaratıw maqsetinde Javadoc orınlawshı faylın iske túsiriwge imkaniyat beredi hám Eclipse sıyaqlı ayırım integraciyalasqan islep shıǵıw ortalıqları (IDE) tárepinen oqılıwı múmkin, bul baǵdarlamashılarǵa IDE ishinde hújjetlerge kiriw múmkinshiligin beredi.

### Hello world
Tómendegi standart shıǵarıwǵa xabar jazatuǵın "Hello, World!" programmasınıń mısalı keltirilgen:

```java
void main() {
    IO.println("Hello World!");
}
```


## Arnawlı klasslar

### Applet
Java appletleri basqa qosımshalarǵa, tiykarınan veb-brauzerlerde kórsetiletuǵın veb-betlerge jaylastırılǵan programmalar edi. Java applet API 2017-jılı Java 9 shıǵarılıwı menen eskirgen dep járiyalandı.

### Servlet
Java servlet texnologiyası veb-baǵdarlamashılarǵa veb-serverdiń funkcional imkaniyatların keńeytiw hám ámeldegi biznes sistemalarına kiriw ushın ápiwayı, izbe-iz mexanizmdi usınadı. Servletler - bul klientlerdiń sorawlarına juwap payda etetuǵın server táreptegi Java EE komponentleri. Kóbinese, bul HTTP sorawlarına juwap retinde HTML betlerin payda etiwdi ańlatadı, degen menen, basqa da bir qatar standart servlet klassları bar, mısalı, WebSocket baylanısı ushın.

Java servlet API belgili bir dárejede veb-xızmetler ushın eki standart Java texnologiyası menen almastırıldı (biraq ele de ishki processlerde qollanıladı):
* AJAX, JSON hám REST xızmetleri ushın paydalı bolǵan RESTful veb-xızmetleri ushın Java API (JAX-RS 2.0), hám
* SOAP veb-xızmetleri ushın paydalı bolǵan XML veb-xızmetleri ushın Java API (JAX-WS).

Bul API-lerdiń Qosımsha Serverleri yamasa Servlet Konteynerlerindegi ádettegi ámelge asırılıwı anıq biznes logikası ushın veb-xızmet metodlarına tapsırılatuǵın HTTP sorawları hám juwapları menen barlıq óz-ara tásirlerdi qayta islew ushın standart servletten paydalanadı.

### JavaServer Pages
JavaServer Pages (JSP) - bul klientlerdiń HTTP sorawlarına juwap, ádette HTML betlerin payda etetuǵın server táreptegi Java EE komponentleri. JSP-ler  arnawlı shegaralawshı belgileri arqalı Java kodın HTML betine jaylastıradı. JSP birinshi ret qollanılǵanda, ol Java servletine, yaǵnıy óz aldına Java qosımshasına kompilyaciya etiledi. Sonnan keyin, payda bolǵan servlet juwaptı jaratadı.

### Swing qosımshası
Swing - bul Java SE platforması ushın grafikalıq paydalanıwshı interfeysi kitapxanası. Swing-tiń jalǵanatuǵın sırtqı kórinis hám sezim sisteması (pluggable look and feel system) arqalı basqasha kórinis beriw múmkin. Windows, GTK+ hám Motif klonları Sun tárepinen usınılǵan. Apple da macOS ushın Aqua sırtqı kórinisin usınadı. Bul sırtqı kórinislerdiń aldıńǵı ámelge asırılıwları jetkiliksiz dep esaplanǵan bolsa, Java SE 6 daǵı Swing bul máseleni tiykarındaǵı platformalardıń jergilikli GUI vidjetlerin sızıw rutinaların kóbirek qollanıw arqalı sheshedi.

### JavaFX qosımshası
JavaFX - bul desktop qosımshaların, sonday-aq hár túrli qurılmalarda isley alatuǵın bay veb-qosımshalardı jaratıw hám jetkerip beriwge arnalǵan programmalıq támiynat platforması. JavaFX Java SE ushın standart grafikalıq paydalanıwshı interfeysi (GUI) kitapxanası retinde Swing-ti almastırıwǵa arnalǵan, biraq JDK 11-den baslap JavaFX tiykarǵı JDK quramında emes, al jeke modul retinde shıǵarıladı. JavaFX Microsoft Windows, Linux hám macOS sistemalarındaǵı desktop kompyuterleri hám veb-brauzerlerdi qollap-quwatlaydı. JavaFX jergilikli operaciyalıq sistema sırtqı kórinislerin qollap-quwatlamaydı.

### Ulıwmalastırıwlar (Generics)
2004-jılı J2SE 5.0 bólimi retinde Java tiline ulıwmalastırıwlar (generics) qosıldı. Ulıwmalastırıwlar kiritilgenge shekem, hárbir ózgeriwshi anıq bir tipte járiyalanıwı kerek edi. Mısalı, konteyner klassları ushın bul bir mashqala edi, sebebi tek anıq bir tiptegi obyektlerdi qabıllaytuǵın konteyner jaratıwdıń ańsat usılı joq edi. Konteyner yamasa bir klass yamasa interfeystiń barlıq kishi tipleri menen, ádette Object penen isleytuǵın edi, ya bolmasa hár bir qamtılǵan klass ushın bólek konteyner klassı jaratılıwı kerek edi. Ulıwmalastırıwlar derlik birdey kodtı óz ishine alǵan kóplegen konteyner klassların jaratpastan, kompilyaciya waqtında tiplerdi tekseriwge imkaniyat beredi. Nátiyjeli kod jaratıw menen bir qatarda, kompilyaciya waqtında qáteliklerdi kórsetiw arqalı ayırım orınlanıw waqtındaǵı qáteliklerdiń aldın aladı. Eger Java orınlanıw waqtındaǵı barlıq tip qátelikleriniń (ClassCastExceptions) júz beriwiniń aldın alǵanda, ol tip jaǵınan qáwipsiz bolatuǵın edi.

2016-jılı Java-nıń tip sisteması nadurıs ekenligi dálillendi, sebebi ulıwmalastırıwlardı (generics) paydalanıp, bir klass mısalın basqa baylanıssız klass ózgeriwshisine tayınlawǵa imkaniyat beretuǵın klasslar hám metodlar qurıw múmkin. Bunday kod kompilyator tárepinen qabıl etiledi, biraq orınlanıw waqtında klass túrin ózgertiw qáteligi (class cast exception) menen tamamlanadı.

## Sın
Javaǵa baylanıslı sın-pikirler ulıwmalastırıwlardıń (generics) ámelge asırılıwı, tezligi, belgisiz sanlar menen islesiw, jıljımalı útirli arifmetikanıń ámelge asırılıwı, hám tiykarǵı Java VM bolǵan HotSpot-taǵı qáwipsizlik hálsizlikleriniń tariyxın óz ishine aladı. Baǵdarlamashılar Java EE-niń standart bólimi Java Persistence API (JPA) diń quramalılıǵı hám kóp sózliligin sınǵa aldı. Bul Spring Data JPA sıyaqlı joqarı dárejeli abstraktlı qatlamlardıń qabıl etiliwiniń artıwına alıp keldi, bul maǵlıwmatlar bazası operaciyaların ápiwayılastırıw hám shablon kodtı azaytıwǵa baǵdarlanǵan. Bunday freymvorklerdiń barǵan sayın keń tarqalıwı standart JPA-nıń zamanagóy Java baǵdarlamaların islep shıǵıwda qollanıw ushın qolaylılıǵında sheklewler bar ekenligin kórsetedi.

## Derekler

__BÖLİDİMÖNDEMEW__