Java dasturlash asoslarini bitta video darsda o’rganing

Java dasturlash asoslarini bitta video darsda o’rganing

10.1 Android
  • 11.1 Java-ni boshqa tillar bilan taqqoslash

Tarix

Shuningdek qarang: Java (dasturiy ta’minot platformasi) § Tarix
Dyuk, Java maskoti
Jeyms Gosling, Java yaratuvchisi, 2008 yilda

The TIOBE dasturlash tilining mashhurlik ko’rsatkichi 2002 yildan 2018 yilgacha grafika. Java 2015 yil o’rtalaridan beri doimiy ravishda eng yuqori pog’onada.

Jeyms Gosling, Mayk Sheridan va Patrik Naughton Java tili loyihasini 1991 yil iyun oyida boshlagan. [23] Java dastlab interaktiv televidenie uchun ishlab chiqilgan edi, ammo u o’sha paytda raqamli kabel televideniesi sanoatida juda rivojlangan edi. [24] Dastlab til chaqirilgan Eman keyin eman Goslingning idorasi oldida turgan daraxt. Keyinchalik loyiha nomi bilan ketdi Yashil va nihoyat o’zgartirildi Java, dan Java qahvasi, kofe Indoneziya. [25] Gosling Java-ni C /C ++ tizim va dastur dasturchilari tanish bo’lgan uslub sintaksisini. [26]

Sun Microsystems 1996 yilda Java 1.0 kabi birinchi ommaviy dasturni chiqardi. [27] Va’da berdi Bir marta yozing, har qanday joyda ishga tushiring (WORA) funktsionallik, ommabop ish vaqtini bepul sarflashni ta’minlaydi platformalar. Xavfsizligi va konfiguratsiya qilinadigan xavfsizligi bilan tarmoq va fayllarga kirishga cheklovlar qo’yildi. Mayor veb-brauzerlar tez orada ishlash qobiliyatini o’zida mujassam etgan Java dasturlari veb-sahifalarida va Java tezda ommalashib ketdi. Java 1.0 kompilyatori qayta yozildi Java-da tomonidan Artur van Xof Java 1.0 til xususiyatlariga qat’iy rioya qilish. [28] Java 2 paydo bo’lishi bilan (dastlab J2SE 1.2 sifatida 1998 yil 1999 yil dekabrda chiqarilgan), yangi versiyalarda har xil turdagi platformalar uchun bir nechta konfiguratsiyalar mavjud edi. J2EE odatda server muhitida ishlaydigan korporativ dasturlar uchun texnologiyalar va API-larni o’z ichiga oladi, J2ME esa mobil ilovalar uchun optimallashtirilgan API-larga ega. Ish stoli versiyasi J2SE deb o’zgartirildi. 2006 yilda marketing maqsadida Sun yangi J2 versiyalarini shunday o’zgartirdi Java EE, Java ME va Java SE navbati bilan.

1997 yilda Sun Microsystems yaqinlashdi ISO / IEC JTC 1 standartlar tanasi va keyinchalik Ecma International Java-ni rasmiylashtirish uchun, ammo tez orada u jarayondan chiqib ketdi. [29] [30] [31] Java a qoladi amalda standart orqali boshqariladi Java jamoatchilik jarayoni. [32] Bir paytlar Sun o’zlarining aksariyat Java dasturlarini bepul bo’lishiga qaramay, ularni amalga oshirdi mulkiy dasturiy ta’minot holat. Sun, Java Enterprise System kabi ixtisoslashtirilgan mahsulotlar uchun litsenziyalarni sotish orqali Java-dan daromad oldi.

2006 yil 13-noyabrda Sun o’zining Java virtual mashinasining (JVM) katta qismini chiqardi bepul va ochiq manbali dasturiy ta’minot Shartlariga binoan (FOSS) GNU umumiy jamoat litsenziyasi (GPL). 2007 yil 8-may kuni Quyosh JVM-ning barcha asosiy kodlarini taqdim etib, jarayonni yakunladi bepul dasturiy ta’minot / Quyosh mualliflik huquqiga ega bo’lmagan kodning kichik qismidan tashqari, ochiq manbali tarqatish shartlari. [33]

Sunning vitse-prezidenti Rich Grinning ta’kidlashicha, Sunning Java bilan bog’liq ideal roli xushxabarchi. [34] Keyingi Oracle korporatsiyasi 2009–10 yillarda Sun Microsystems-ni sotib olgan Oracle o’zini ishtirok etish va shaffoflik jamoatchiligini rivojlantirish uchun tinimsiz majburiyat bilan o’zini Java texnologiyasining boshqaruvchisi deb ta’rifladi. [35] Bu Oracle-dan biroz vaqt o’tgach, Java-ning ichida Java-dan foydalanganligi uchun Google-ga qarshi da’vo qo’zg’ashiga to’sqinlik qilmadi Android SDK (qarang Android Bo’lim).

2010 yil 2 aprelda Jeyms Gosling iste’foga chiqdi Oracle. [36]

2016 yil yanvar oyida Oracle JDK 9 asosida ishlaydigan Java muhiti brauzer plaginini to’xtatishini e’lon qildi. [37]

Java dasturi noutbukdan tortib to hamma narsada ishlaydi ma’lumotlar markazlari, o’yin konsollari ilmiy superkompyuterlar. [38]

Printsiplar

Java tilini yaratishda beshta asosiy maqsad bor edi: [18]

  1. Bu oddiy bo’lishi kerak, ob’ektga yo’naltirilgan va tanish.
  2. Bu mustahkam va xavfsiz bo’lishi kerak.
  3. Arxitektura-neytral va ko’chma bo’lishi kerak.
  4. Bu yuqori ishlash bilan bajarilishi kerak.
  5. Bu bo’lishi kerak talqin qilingan, tishli va dinamik.

Versiyalar

2020 yil sentyabr oyidan boshlab [yangilash] , Java 8 va 11-da uzoq muddatli qo’llab-quvvatlash (LTS) versiyalari sifatida qo’llab-quvvatlanadi va LTS-ning keyingi versiyalari qo’llab-quvvatlanadi. [39] Java-ning asosiy versiyalari va chiqarilish sanalari bilan bir qatorda:

Versiya Sana
JDK Beta-versiyasi 1995
JDK1.0 1996 yil 23-yanvar [40]
JDK 1.1 1997 yil 19 fevral
J2SE 1.2 1998 yil 8-dekabr
J2SE 1.3 2000 yil 8-may
J2SE 1.4 2002 yil 6-fevral
J2SE 5.0 2004 yil 30 sentyabr
Java SE 6 2006 yil 11-dekabr
Java SE 7 2011 yil 28-iyul
Java SE 8 2014 yil 18 mart
Java SE 9 2017 yil 21 sentyabr
Java SE 10 2018 yil 20 mart
Java SE 11 2018 yil 25 sentyabr [41]
Java SE 12 2019 yil 19 mart
Java SE 13 2019 yil 17 sentyabr
Java SE 14 2020 yil 17 mart
Java SE 15 2020 yil 15 sentyabr

Nashrlar

Shuningdek qarang: Bepul Java dasturlari § Sinflar kutubxonasi

Quyosh turli xil dastur muhitlariga yo’naltirilgan Java-ning to’rtta nashrini aniqladi va qo’llab-quvvatladi va ko’pini segmentlarga ajratdi API-lar ular platformalardan biriga tegishli bo’lishi uchun. Platformalar:

  • Java kartasi smart-kartalar uchun. [42]
  • Java platformasi, Micro Edition (Java ME) – cheklangan resurslarga ega muhitni maqsad qilish. [43]
  • Java platformasi, Standard Edition (Java SE) – ish stantsiyasi muhitlarini yo’naltirish. [44]
  • Java platformasi, Enterprise Edition (Java EE) – yirik tarqatilgan korxona yoki Internet muhitiga yo’naltirilganlik. [45]

The sinflar Java API-larida alohida guruhlarga ajratilgan paketlar. Har bir to’plamda tegishli to’plam mavjud interfeyslar, sinflar, pastki paketlar va istisnolar.

Sun shuningdek, nashr etilgan nashrni taqdim etdi Shaxsiy Java keyinchalik standartlarga asoslangan Java ME konfiguratsiya-profil juftliklari tomonidan almashtirildi.

Ijro tizimi

Java JVM va bayt kodi

Asosiy maqolalar: Java (dasturiy ta’minot platformasi) va Java virtual mashinasi

Java-ning dizayn maqsadlaridan biri bu portativlik, ya’ni Java platformasi uchun yozilgan dasturlar har qanday apparat va operatsion tizim kombinatsiyasida shunga o’xshash ishlashi kerak, bu esa ishlash vaqtini etarli darajada qo’llab-quvvatlaydi, bu Java tili kodini oraliq vakolatxonaga kompilyatsiya qilish orqali amalga oshiriladi. Java bayt kodi, to’g’ridan-to’g’ri arxitekturaga xos o’rniga mashina kodi. Java bayt kodi ko’rsatmalari mashina kodiga o’xshaydi, ammo ular a tomonidan bajarilishi kerak virtual mashina (VM) xost apparati uchun maxsus yozilgan. Oxirgi foydalanuvchilar odatda a dan foydalaning Java ish vaqti muhiti (JRE) o’zlarining shaxsiy kompyuterlarida Java dasturlari uchun yoki veb-brauzerda o’rnatilgan Java dasturlari.

Standart kutubxonalar xostga xos xususiyatlarga, masalan, grafika, iplar va tarmoq.

Universal bayt kodidan foydalanish portlashni soddalashtiradi. Biroq, qo’shimcha xarajatlar tarjima qilish bayt kodi mashina ko’rsatmalariga kiritilgan, sharhlangan dasturlar deyarli har doim mahalliyga qaraganda sekinroq ishlaydi bajariladigan fayllar. Ayni vaqtida Ishlash vaqtida bayt-kodlarni mashina kodiga kompilyatsiya qiladigan (JIT) kompilyatorlar dastlabki bosqichdan boshlab kiritilgan. Java o’zi platformadan mustaqildir va u ishlatadigan platformaga moslashgan Java virtual mashinasi (JVM) uchun tarjima qilingan Java bayt kodi platformaning mashina tiliga. [46]

Ishlash

Asosiy maqola: Java ishlashi

Java tilida yozilgan dasturlar yozilgandan sekinroq va ko’proq xotira talab qiladigan obro’ga ega C ++ . [47] [48] Biroq, Java dasturlarini bajarish tezligi joriy etilishi bilan sezilarli darajada yaxshilandi o’z vaqtida kompilyatsiya 1997/1998 yillarda Java 1.1, [49] kodni yaxshiroq tahlil qilishni qo’llab-quvvatlovchi til funktsiyalarining qo’shilishi (ichki sinflar, StringBuilder klassi, ixtiyoriy tasdiqlar va hk) va Java virtual mashinasida optimallashtirish, masalan HotSpot 2000 yilda Quyoshning JVM standarti bo’lib qoldi. Java 1.5 bilan ishlash java.util.concurrent to’plami qo’shilishi bilan yaxshilandi, shu jumladan bepul qulflang amalga oshirish Parallel xaritalar va boshqa ko’p yadroli to’plamlar va Java 1.6 bilan yanada yaxshilandi.

JVM bo’lmagan

Ba’zi platformalar Java uchun to’g’ridan-to’g’ri apparat yordamini taklif qiladi; dasturiy ta’minot Java virtual mashinasi o’rniga qo’shimcha qurilmalarda Java bayt kodini boshqaradigan mikro tekshirgichlar mavjud, [50] va ba’zilari ARM asosidagi protsessorlarda Java bayt kodini bajarish uchun apparat yordami bo’lishi mumkin Jazel variant, garchi qo’llab-quvvatlash asosan ARMning joriy dasturlarida to’xtatilgan bo’lsa.

Xotirani avtomatik boshqarish

Java an foydalanadi avtomatik axlat yig’uvchi (AGC) xotirani boshqarish uchun ob’ektning hayot aylanishi. Dasturchi qachon ob’ektlar yaratilishini aniqlaydi va Java ish vaqti ob’ektlar ishlatilmay qolgandan keyin xotirani tiklash uchun javobgardir. Ob’ektga havolalar qolmagandan so’ng, ulanib bo’lmaydigan xotira avtomatik ravishda axlat yig’uvchi tomonidan ozod qilish huquqiga ega bo’ladi. A ga o’xshash narsa xotira oqishi dasturchining kodida keraksiz bo’lgan narsaga havola bo’lsa, odatda kerak bo’lmaydigan narsalar hali ham ishlatilayotgan idishlarda saqlanganda paydo bo’lishi mumkin. Agar mavjud bo’lmagan ob’ekt uchun usullar chaqirilsa, a nol ko’rsatkich istisno tashlanadi. [51] [52]

Java-ning xotirani avtomatik boshqarish modeli asosidagi g’oyalardan biri bu dasturchilar xotirani qo’lda boshqarishni amalga oshirish majburiyatidan xalos bo’lishdir. Ba’zi tillarda moslamalarni yaratish uchun xotira bilvosita ajratilgan suyakka dan aniq ajratilgan va ajratilgan uyum. Ikkinchi holatda, xotirani boshqarish mas’uliyati dasturchiga tegishli. Agar dastur ob’ektni taqsimlamasa, a xotira oqishi sodir bo’ladi. Agar dastur allaqachon ajratilgan xotiraga kirishga yoki uni ajratishga harakat qilsa, natija aniqlanmagan va taxmin qilish qiyin va dastur beqaror bo’lib qolishi yoki ishdan chiqishi mumkin. Yordamida qisman tuzatilishi mumkin aqlli ko’rsatgichlar, ammo bu qo’shimcha xarajatlarni va murakkablikni oshiradi. E’tibor bering, axlat yig’ish to’sqinlik qilmaydi mantiqiy xotira qochqinlar, ya’ni xotira hali ham havola qilinadigan, ammo hech qachon ishlatilmaydigan joylar.

Axlat yig’ish har qanday vaqtda yuz berishi mumkin. Ideal holda, dastur bo’sh turganida paydo bo’ladi. Agar uyumda yangi ob’ekt ajratish uchun bo’sh xotira etarli bo’lmasa, uni ishga tushirish kafolatlanadi; bu dasturning bir lahzada to’xtab qolishiga olib kelishi mumkin. Java-da xotirani aniq boshqarish mumkin emas.

Java C / C ++ uslubini qo’llab-quvvatlamaydi ko’rsatkich arifmetikasi, bu erda ob’ekt manzillari arifmetik ravishda boshqarilishi mumkin (masalan, ofset qo’shish yoki olib tashlash yo’li bilan). Bu axlat yig’uvchiga havola qilingan moslamalarni boshqa joyga ko’chirishga imkon beradi va tur xavfsizligi va xavfsizligini ta’minlaydi.

C ++ va boshqa ba’zi ob’ektga yo’naltirilgan tillarda bo’lgani kabi, Java-ning o’zgaruvchilari ibtidoiy ma’lumotlar turlari to’g’ridan-to’g’ri maydonlarda (ob’ektlar uchun) yoki suyakka (usullar uchun) emas, balki odatda ibtidoiy bo’lmagan ma’lumotlar turlari uchun to’g’ri keladi (lekin qarang) qochish tahlili ). Bu Java-ning dizaynerlari tomonidan ishlash sabablari bilan ongli ravishda qaror qilindi.

Java tarkibida bir nechta axlat yig’uvchilar mavjud. Odatiy bo’lib, HotSpot quyidagini ishlatadi parallel chiqindilarni yig’uvchi. [53] Shu bilan birga, uyumni boshqarish uchun ishlatilishi mumkin bo’lgan yana bir nechta axlat yig’uvchilar mavjud. Java dasturlarining 90% uchun Bir vaqtning o’zida Mark-Sweep (CMS) axlat yig’uvchi etarli. [54] Oracle CMS-ni “bilan” almashtirishga qaratilgan Axlat-birinchi yig’uvchi (G1). [55]

Xotirani boshqarish muammosini hal qilish, dasturchini boshqa turdagi resurslarni, masalan, tarmoq yoki ma’lumotlar bazasi ulanishlari, fayl tutqichlari va boshqalarni to’g’ri ishlash yukidan xalos qilmaydi, ayniqsa istisnolar mavjud bo’lganda. Paradoksal ravishda, axlat yig’uvchilarning mavjudligi sinflarda aniq destruktor usuliga ega bo’lish zaruriyatini yo’qotib qo’ydi va shu bilan boshqa resurslarni boshqarish qiyinlashdi. [ iqtibos kerak ]

Sintaksis

Asosiy maqola: Java sintaksis
Java Core sinflarining bog’liqlik grafigi (jdeps va bilan yaratilgan Gephi )

Java sintaksisiga asosan ta’sir ko’rsatmoqda C ++ va C. Tarkibiy, umumiy va ob’ektga yo’naltirilgan dasturlash uchun sintaksisni birlashtirgan C ++ dan farqli o’laroq, Java deyarli faqat ob’ektga yo’naltirilgan til sifatida yaratilgan. [18] Barcha kodlar sinflar ichida yozilgan va har qanday ma’lumotlar elementi, ibtidoiy ma’lumotlar turlari bundan mustasno (ya’ni butun sonlar, suzuvchi nuqta raqamlari, mantiqiy qiymatlar va belgilar), ular ishlash sabablari uchun ob’ekt emas. Java C ++ ning ba’zi mashhur jihatlarini qayta ishlatadi (masalan printf usul).

C ++ dan farqli o’laroq, Java qo’llab-quvvatlamaydi operatorning ortiqcha yuklanishi [56] yoki ko’p meros sinflar uchun, garchi bir nechta meros qo’llab-quvvatlansa interfeyslar. [57]

Java foydalanadi Izohlar C ++ bilan o’xshash. Uch xil sharh uslubi mavjud: ikkita chiziq bilan belgilangan bitta chiziq uslubi ( // ) bilan ochilgan ko’p qatorli uslub /* va bilan yopilgan */ , va Javadoc sharhlash uslubi ochildi /** va bilan yopilgan */ . Javadoc sharhlash uslubi foydalanuvchiga dastur uchun hujjat yaratish uchun Javadoc bajariladigan dasturini ishga tushirishga imkon beradi va ba’zilari o’qishi mumkin. birlashgan rivojlanish muhiti (IDE) kabi Tutilish ishlab chiquvchilarga IDE doirasida hujjatlarga kirishga ruxsat berish.

Salom dunyo misoli

An’anaviy Salom dunyo dasturi Java-da quyidagicha yozilishi mumkin: [58]

jamoat sinf HelloWorldApp  jamoat statik bekor asosiy(Ip[] kamon)  Tizim.chiqib.println("Salom Dunyo!"); // Ipni konsolga bosib chiqaradi. >>

Barcha manba fayllari qo’shimchani qo’shib, ular tarkibidagi umumiy sinf nomi bilan nomlanishi kerak .java , masalan, HelloWorldApp.java . Avval bayt kodiga kompilyatsiya qilinishi kerak Java kompilyatori bilan fayl ishlab chiqarish .class qo’shimchasi ( HelloWorldApp.class , Ushbu holatda). Shundan keyingina uni bajarish yoki ishga tushirish mumkin. Java manba fayli faqat bitta umumiy sinfni o’z ichiga olishi mumkin, ammo u umumiy bo’lmagan kirish modifikatori va istalgan umumiy songa ega bo’lgan bir nechta sinflarni o’z ichiga olishi mumkin ichki sinflar. Agar manba faylida bir nechta sinf mavjud bo’lsa, bitta sinfni yaratish kerak (. Tomonidan kiritilgan sinf kalit so’z) umumiy (oldin jamoat kalit so’z) va manba faylini ushbu umumiy sinf nomi bilan nomlang.

Ommaviy deb e’lon qilinmagan sinf har qanday joyda saqlanishi mumkin .java fayl. Tuzuvchi manba faylida aniqlangan har bir sinf uchun sinf faylini yaratadi. Sinf faylining nomi sinf nomi, bilan .class ilova qilingan. Sinf fayllarini yaratish uchun, noma’lum sinflar go’yo ularning nomi ularning atrofidagi sinf nomlari birikmasi bo’lganidek muomala qilinadi, a $va butun son.

The kalit so’z jamoat usulni boshqa sinflardagi koddan chaqirish mumkinligini yoki sinf sinf ierarxiyasidan tashqaridagi sinflar tomonidan ishlatilishini bildiradi. Sinf iyerarxiyasi .java fayli joylashgan katalog nomi bilan bog’liq. Bunga kirish darajasini o’zgartiruvchi deyiladi. Kirish darajasining boshqa modifikatorlari kalit so’zlarni o’z ichiga oladi xususiy (faqat bitta sinfda kirish mumkin bo’lgan usul) va himoyalangan (bir xil paketdagi kodga kirish uchun ruxsat beruvchi). Agar kodning bir qismi shaxsiy usullarga yoki himoyalangan usullarga kirishga harakat qilsa, JVM a ni tashlaydi SecurityException

Kalit so’z statik [19] usul oldida a ni bildiradi statik usul, bu faqat sinf bilan bog’liq va bu sinfning biron bir aniq namunasi bilan bog’liq emas. Ob’ektga murojaat qilmasdan faqat statik usullarni chaqirish mumkin. Statik usullar statik bo’lmagan har qanday sinf a’zolariga kira olmaydi. Statik deb belgilanmagan usullar instansiya usulidir va ishlash uchun sinfning o’ziga xos nusxasini talab qiladi.

Kalit so’z bekor asosiy usul qo’ng’iroq qiluvchiga hech qanday qiymat qaytarmasligini ko’rsatadi. Agar Java dasturi xato kodi bilan chiqmoqchi bo’lsa, u System.exit () dasturiga aniq qo’ng’iroq qilishi kerak.

Usul nomi asosiy Java tilidagi kalit so’z emas. Bu shunchaki Java launcher dasturni boshqarishni uzatishga chaqiradigan usulning nomi. Applet va kabi boshqariladigan muhitda ishlaydigan Java sinflari Enterprise JavaBeans ishlatmang yoki kerak emas asosiy () usul. Java dasturida bir nechta sinf mavjud bo’lishi mumkin asosiy usullari, ya’ni VM-ni qaysi sinfdan boshlash kerakligini aniq aytish kerak.

Asosiy usul an qabul qilishi kerak qator ning Ip ob’ektlar. Konventsiyaga ko’ra, unga quyidagicha murojaat qilinadi kamon boshqa har qanday huquqiy identifikator nomidan foydalanish mumkin bo’lsa-da. Java 5 dan boshlab, asosiy usul ham foydalanishi mumkin o’zgaruvchan dalillar shaklida public static void main (String . args) , asosiy usulni ixtiyoriy son bilan chaqirishga imkon beradi Ip dalillar. Ushbu muqobil deklaratsiyaning ta’siri semantik jihatdan bir xil (ga kamon hali ham bir qator bo’lgan parametr Ip ob’ektlar), ammo bu massivni yaratish va uzatish uchun muqobil sintaksisga imkon beradi.

Java launcher ma’lum bir sinfni yuklash orqali Java-ni ishga tushiradi (buyruq satrida yoki a-da atribut sifatida ko’rsatilgan) JAR ) va uni boshlash public static void main (String []) usul. Mustaqil dasturlar ushbu usulni aniq e’lon qilishi kerak. The Arqonlar qatori parametr an qator ning Ip sinfga berilgan har qanday argumentlarni o’z ichiga olgan ob’ektlar. Parametrlari asosiy ko’pincha a orqali uzatiladi buyruq satri.

Bosib chiqarish Java standart kutubxonasining bir qismidir: The Tizim class deb nomlangan umumiy statik maydonni belgilaydi chiqib . The chiqib ob’ekt. ning misoli PrintStream sinf va ma’lumotlarni chop etishning ko’plab usullarini taqdim etadi standart chiqib, shu jumladan println (satr) uzatilgan qatorga yangi qator qo’shiladi.

Ip “Salom Dunyo!” kompilyator tomonidan avtomatik ravishda String ob’ektiga aylantiriladi.

Uslublar bilan misol

// Bu ikkita chiziqdan foydalangan holda bitta satr sharhining misoli/* * Bu chiziq va yulduzcha yordamida ko'p satrli sharhning misoli. * Ushbu turdagi sharhlardan ko'plab ma'lumotlarni saqlash yoki o'chirish uchun foydalanish mumkin * kod, lekin sharhni yopishni unutmaslik juda muhimdir. */paket tolalar;Import java.util.Map;Import java.util.HashMap;/** * Bu Javadoc sharhining misoli; Javadoc hujjatlarni tuzishi mumkin * ushbu matndan. Javadoc sharhlari darhol sinf, usuldan oldin bo'lishi kerak, * yoki hujjatlashtirilgan maydon. * @avtor Vikipediya ko'ngillilari */jamoat sinf FibCalculator uzaytiradi Fibonachchi asboblar Kalkulyator  xususiy statik XaritaButun son, Butun son> yodlangan = yangi HashMap(); /* * Quyidagi tarzda yozilgan asosiy usul JVM tomonidan boshlang'ich nuqta sifatida ishlatiladi * dastur uchun. */ jamoat statik bekor asosiy(Ip[] kamon)  yodlangan.qo'yish(1, 1); yodlangan.qo'yish(2, 1); Tizim.chiqib.println(fibonachchi(12)); // 12-Fibonachchi raqamini oling va konsolga bosib chiqaring > /** * Java-da yozilgan, sinfga o'ralgan usulga misol. * Salbiy bo'lmagan FIBINDEX raqami berilgan bo'lsa, qaytadi * N-Fibonachchi raqami, bu erda N FIBINDEX ga teng. * * @param fibIndex Fibonachchi raqamining ko'rsatkichi * Fibonachchi raqamini qaytaring */ jamoat statik int fibonachchi(int fibIndex)  agar (yodlangan.o'z ichiga oladiKey(fibIndex)) qaytish yodlangan.olish(fibIndex); boshqa  int javob bering = fibonachchi(fibIndex - 1) + fibonachchi(fibIndex - 2); yodlangan.qo'yish(fibIndex, javob bering); qaytish javob bering; > >>

Maxsus darslar

Ushbu bo’lim uchun qo’shimcha iqtiboslar kerak tekshirish. Iltimos yordam bering ushbu maqolani yaxshilang tomonidan ishonchli manbalarga iqtiboslarni qo’shish. Ma’lumot manbasi bo’lmagan materialga qarshi chiqish va olib tashlash mumkin.
Manbalarni toping: “Java” dasturlash tili – Yangiliklar · gazetalar · kitoblar · olim · JSTOR ( 2019 yil may ) (Ushbu shablon xabarini qanday va qachon olib tashlashni bilib oling)

Olma

Asosiy maqola: Java ilovasi

Java dasturlari bo’lgan dasturlar edi ko’milgan boshqa dasturlarda, odatda veb-brauzerda ko’rsatilgan veb-sahifada. Java applet API endi 2017 yilda Java 8 dan beri eskirgan. [59] [60]

Servlet

Asosiy maqola: Java servlet

Java servlet texnologiya veb-ishlab chiquvchilarga veb-server funksiyasini kengaytirish va mavjud biznes tizimlariga kirish uchun oddiy, izchil mexanizmni taqdim etadi. Servletlar server tomoni So’rovlarga javob beradigan Java EE komponentlari mijozlar. Ko’pincha, bu ishlab chiqarishni anglatadi HTML javoban sahifalar HTTP masalan, boshqa bir qator standart servlet sinflari mavjud bo’lsa ham, so’rovlar WebSocket aloqa.

Java servlet API-si ma’lum darajada veb-xizmatlar uchun ikkita standart Java texnologiyalari tomonidan almashtirildi (lekin baribir qopqoq ostida ishlatilgan):

  • The RESTful veb-xizmatlari uchun Java API (JAX-RS 2.0) AJAX, JSON va REST xizmatlari uchun foydalidir va
  • The XML veb-xizmatlari uchun Java API (JAX-WS) uchun foydalidir SABUNVeb-xizmatlar.

Ushbu API-larni dastur serverlarida yoki xizmatlar konteynerlarida odatiy tatbiq etishda, HTTP so’rovlari va veb-xizmat usullariga vakolat beradigan javoblar bilan barcha o’zaro ta’sirlarni boshqarish uchun standart servlet ishlatiladi.

JavaServer sahifalari

Asosiy maqola: JavaServer sahifalari

JavaServer sahifalari (JSP) server tomoni Javoblarni ishlab chiqaradigan Java EE komponentlari, odatda HTML sahifalar, to HTTP so’rovlari mijozlar. JSP-lar Java-kodni maxsus sahifadan foydalanib HTML-sahifaga joylashtiradi ajratuvchilar . JSP Java-da tuzilgan servlet, o’z-o’zidan Java ilovasi, unga birinchi marta kirishda. Shundan so’ng, yaratilgan servlet javobni yaratadi. [61]

Sallanmaya ilova

Asosiy maqola: Swing (Java)

Belanchak grafik foydalanuvchi interfeysi kutubxona Java SE platformasi uchun. Orqali boshqa ko’rinishni va hissiyotni ko’rsatish mumkin ulanadigan ko’rinish va his qilish Swing tizimi. Klonlari Windows, GTK + va Motiv Sun tomonidan ta’minlanadi. olma shuningdek Akva qarash va his qilish macOS. Ushbu ko’rinishlar va his-tuyg’ularning oldindan tatbiq etilishi yo’q deb hisoblangan bo’lsa, Java SE 6-da almashtirish ushbu muammoni ko’proq mahalliy foydalanish orqali hal qiladi GUI vidjeti asosiy platformalarning tartiblarini chizish. [62]

JavaFX dasturi

Asosiy maqola: JavaFX

JavaFX a dasturiy ta’minot platformasi yaratish va etkazib berish uchun ish stoli dasturlari, shu qatorda; shu bilan birga boy Internet dasturlari (RIA) turli xil qurilmalar bo’ylab ishlashi mumkin. JavaFX almashtirish uchun mo’ljallangan Belanchak standart sifatida GUI uchun kutubxona Java SE, lekin JDK 11 JavaFX JDK yadrosida bo’lmagan va uning o’rniga alohida modulda bo’lgan. [63] JavaFX-ni qo’llab-quvvatlaydi ish stoli kompyuterlar va veb-brauzerlar kuni Microsoft Windows, Linux va macOS. JavaFX-da mahalliy OS ko’rinishini qo’llab-quvvatlamaydi. [64]

Generika

Asosiy maqola: Java-dagi umumiy narsalar

2004 yilda, umumiy narsalar Java tiliga J2SE 5.0 ning bir qismi sifatida qo’shildi. Umumiy ma’lumotlar kiritilishidan oldin har bir o’zgaruvchining deklaratsiyasi ma’lum bir turdagi bo’lishi kerak edi. Masalan, konteyner sinflari uchun bu muammo tug’diradi, chunki faqat ma’lum turdagi ob’ektlarni qabul qiladigan konteyner yaratish oson emas. Yoki konteyner odatda sinf yoki interfeysning barcha kichik tiplarida ishlaydi Ob’ekt yoki har bir sinf uchun boshqa konteyner sinfi yaratilishi kerak. Generics kompilyatsiya vaqtini tekshirishga imkon beradi, ularning har biri deyarli bir xil kodni o’z ichiga olgan ko’plab konteyner sinflarini yaratmasdan. Keyinchalik samarali kodni yoqish bilan bir qatorda, kompilyatsiya vaqtida xatoliklarni keltirib, ba’zi ish vaqti istisnolari paydo bo’lishining oldini oladi. Agar Java barcha ish vaqti turidagi xatolarni oldini olgan bo’lsa ( ClassCastException s) sodir bo’lishidan, shunday bo’lar edi xavfsiz turi.

2016 yilda Java-ning tipik tizimi isbotlandi asossiz. [65]

Tanqid

Asosiy maqola: Java-ni tanqid qilish

Java-ga qaratilgan tanqidlarga jeneriklarni amalga oshirish kiradi, [66] tezlik, [67] imzosiz raqamlar bilan ishlash, [68] suzuvchi nuqta arifmetikasini amalga oshirish, [69] va asosiy Java VM dasturida xavfsizlik zaifliklari tarixi HotSpot. [70]

Sinf kutubxonalari

Asosiy maqola: Java sinf kutubxonasi

The Java sinf kutubxonasi bo’ladi standart kutubxona, Java-da dasturlarni ishlab chiqishni qo’llab-quvvatlash uchun ishlab chiqilgan. U tomonidan boshqariladi Oracle orqali boshqalar bilan hamkorlikda Java jamoatchilik jarayoni dastur. [71] Ushbu jarayonda ishtirok etadigan kompaniyalar yoki jismoniy shaxslar API-larni loyihalashtirish va rivojlanishiga ta’sir ko’rsatishi mumkin. Ushbu jarayon 2010 yillar davomida tortishuvlarga sabab bo’ldi. [72] Sinf kutubxonasida quyidagi funktsiyalar mavjud:

  • Asosiy kutubxonalar:
    • IO /NIO
    • Tarmoq (Izoh: yangi HTTP mijozi Java 11 dan beri)
    • Ko’zgu
    • Muvofiqlik
    • Generika
    • Ssenariy / kompilyator
    • Funktsional dasturlash (Lambda, Oqim)
    • To’plam kutubxonalari amalga oshiradigan ma’lumotlar tuzilmalari kabi ro’yxatlar, lug’atlar, daraxtlar, to’plamlar, navbat va ikki tomonlama navbat, yoki vayronalar[73]
    • XML Kutubxonalarni qayta ishlash (tahlil qilish, o’zgartirish, tasdiqlash)
    • Xavfsizlik[74]
    • Xalqarolashtirish va mahalliylashtirish kutubxonalar [75]
    • The Java ma’lumotlar bazasiga ulanish (JDBC) API ma’lumotlar bazasiga kirish uchun
    • Java nomlanishi va katalog interfeysi (JNDI) qidiruv va kashfiyot uchun
    • RMI va KORBA tarqatilgan dasturlarni ishlab chiqish uchun
    • JMX dasturlarni boshqarish va nazorat qilish uchun
    • (Og’ir vaznli yoki tug’ma ) Xulosa oynasi uchun vositalar to’plami (AWT) beradi GUI komponentlar, ushbu tarkibiy qismlarni yotqizish uchun vositalar va ushbu tarkibiy qismlardan voqealarni boshqarish vositalari
    • (Engil) Belanchak AWT asosida qurilgan, lekin AWT vidjetining (mahalliy bo’lmagan) dasturlarini ta’minlaydigan kutubxonalar
    • Ovozni yozib olish, qayta ishlash va ijro etish uchun API-lar
    • JavaFX

    Hujjatlar

    Asosiy maqola: Javadoc

    Javadoc – bu tomonidan yaratilgan keng qamrovli hujjatlar tizimi Quyosh mikrosistemalari. Bu ishlab chiquvchilarga o’zlarining kodlarini hujjatlashtirish uchun uyushgan tizimni taqdim etadi. Javadoc izohlari boshida qo’shimcha yulduzcha bor, ya’ni ajratuvchilar /** va */ , Java-da odatdagi ko’p satrli sharhlar ajratuvchilar bilan o’rnatiladi /* va */ , va bitta qatorli sharhlar qatordan boshlanadi // . [76]

    Amaliyotlar

    Shuningdek qarang: Bepul Java dasturlari

    Oracle korporatsiyasi Java SE platformasini sotib olganidan so’ng rasmiy tatbiq etishning amaldagi egasi Quyosh mikrosistemalari 2010 yil 27-yanvarda. Ushbu dastur Java tomonidan Sun.ning asl dasturiga asoslangan. Oracle dasturi mavjud Microsoft Windows (hali ham XP uchun ishlaydi, faqat keyingi versiyalari hozirda rasmiy ravishda qo’llab-quvvatlanmoqda), macOS, Linux va Solaris. Java tomonidan tan olingan har qanday rasmiy standartlashtirish yo’qligi sababli Ecma International, ISO / IEC, ANSI yoki boshqa uchinchi tomon standartlari tashkilotlari, Oracle dasturini amalga oshirish amalda standart.

    Oracle dasturi ikki xil tarqatishda paketlangan: Java dasturlarini ishga tushirish uchun zarur bo’lgan Java SE platformasining qismlarini o’z ichiga olgan va oxirgi foydalanuvchilar uchun mo’ljallangan Java Runtime Environment (JRE). Java Development Kit (JDK), dasturiy ta’minot ishlab chiquvchilari uchun mo’ljallangan va kabi ishlab chiqish vositalarini o’z ichiga oladi Java kompilyatori, Javadoc, Jar va a tuzatuvchi. Oracle ham chiqdi GraalVM, yuqori sifatli Java dinamik kompilyatori va tarjimoni.

    OpenJDK GNU GPL bo’yicha litsenziyalangan yana bir muhim Java SE dasturidir. Amalga oshirish Sun GPL ostida Java manba kodini chiqarishni boshlaganda boshlandi. Java SE 7 dan boshlab, OpenJDK rasmiy Java mos yozuvlar dasturidir.

    Java-ning maqsadi Java-ning barcha dasturlarini mos keltirishdir. Tarixga ko’ra, Sun-ning Java brendidan foydalanish uchun savdo markasi litsenziyasi barcha dasturlarning bajarilishini talab qiladi mos. Bu bilan huquqiy nizo yuzaga keldi Microsoft Sun Microsoft dasturini qo’llab-quvvatlamaydi deb da’vo qilgandan keyin RMI yoki JNI va o’zlarining platformalariga xos xususiyatlarini qo’shdilar. Sun 1997 yilda sudga murojaat qildi va 2001 yilda 20 million AQSh dollar miqdorida kelishuvga erishdi, shuningdek Sun tomonidan litsenziya shartlarini bajargan sud qarori. [77] Natijada, Microsoft endi Java-ni jo’natmaydi Windows.

    Platformadan mustaqil Java muhim ahamiyatga ega Java EE va amalga oshirilishini tasdiqlash uchun yanada qat’iyroq tekshirish talab etiladi. Ushbu muhit portativ server tomonidagi dasturlarni yoqadi.

    Java platformasidan tashqarida foydalaning

    Java dasturlash tili kompilyatsiya qilingan dasturlarning bajarilishi uchun dasturiy ta’minot platformasining mavjudligini talab qiladi.

    Oracle etkazib beradi Java platformasi Java bilan ishlatish uchun. The Android SDK asosan ishlab chiqish uchun ishlatiladigan muqobil dasturiy platformadir Android ilovalari o’z GUI tizimi bilan.

    Android

    The Android operatsion tizim Java bilan bog’liq texnologiyalardan keng foydalanadi

    Java tili asosiy ustundir Android, an ochiq manba mobil operatsion tizim. Android-da o’rnatilgan bo’lsa-da Linux yadrosi, asosan C, the-da yozilgan Android SDK Android dasturlari uchun asos sifatida Java tilidan foydalanadi, lekin uning standart GUI, SE, ME yoki boshqa o’rnatilgan Java standartlaridan foydalanmaydi. [78] Android SDK tomonidan qo’llab-quvvatlanadigan bayt kodi tili Java bayt kodi bilan mos kelmaydi va kam xotirali qurilmalar uchun optimallashtirilgan o’z virtual mashinasida ishlaydi. smartfonlar va planshet kompyuterlar. Android versiyasiga qarab, bayt kodi tomonidan izohlanadi Dalvik virtual mashinasi yoki tomonidan mahalliy kodga kiritilgan Android ish vaqti.

    Android to’liq Java SE standart kutubxonasini ta’minlamaydi, garchi Android SDK uning katta to’plamini mustaqil ravishda amalga oshirishni o’z ichiga oladi. Java 6 va ba’zi Java 7 funktsiyalarini qo’llab-quvvatlaydi, bu standart kutubxonaga mos keladigan dasturni taklif qiladi (Apache uyg’unligi ).

    Qarama-qarshilik

    Shuningdek qarang: Oracle America, Inc., Google, Inc.

    Android-da Java bilan bog’liq texnologiyalardan foydalanish Oracle va Google o’rtasida huquqiy nizolarga olib keldi. 2012 yil 7 mayda San-Frantsiskodagi hakamlar hay’ati API-lar mualliflik huquqini himoya qilishi mumkin bo’lsa, demak Google Android qurilmalarida Java-dan foydalangan holda Oracle-ning mualliflik huquqlarini buzganligini aniqladi. [79] Tuman sudyasi Uilyam Haskell Alsup 2012 yil 31 mayda API-lar mualliflik huquqiga ega emas degan qarorga keldi, [80] ammo bu 2014 yil may oyida AQShning Federal davri apellyatsiya sudi tomonidan bekor qilingan. [81] 2016 yil 26 mayda tuman sudi Google foydasiga qaror qildi va Android-da Java API-ning mualliflik huquqining buzilishi adolatli foydalanishni anglatadi. [82] 2018 yil mart oyida ushbu qaror Apellyatsiya sudi tomonidan bekor qilindi va San-Frantsisko federal sudiga etkazilgan zararni aniqlash to’g’risidagi ishni yubordi. [83] Google sertifikat hujjatlari uchun ariza bilan murojaat qildi Amerika Qo’shma Shtatlari Oliy sudi 2019 yil yanvar oyida Oracle foydasiga Apellyatsiya sudi tomonidan chiqarilgan ikkita qarorga qarshi chiqish. [84]

    Shuningdek qarang

    • Kompyuter dasturlash portali
    • C #
    • C ++
    • Dalvik, eski Android versiyalarida ishlatilgan, o’rniga JIT bo’lmagan Android ish vaqti
    • Deterministik parallel Java
    • Java virtual mashinalarining ro’yxati
    • Java API-lari ro’yxati
    • JVM tillari ro’yxati

    Java-ni boshqa tillar bilan taqqoslash

    • C # va Java-ni taqqoslash
    • Java va C ++ tillarini taqqoslash

    Adabiyotlar

    1. ^ Binstuk, Endryu (2015 yil 20-may). “Java-ning 20 yillik innovatsiyasi”. Forbes. Arxivlandi asl nusxasidan 2016 yil 14 martda . Olingan 18 mart, 2016 .
    2. ^“Java 15-ning kelishi!”. Oracle. 2020 yil 15 sentyabr . Olingan 15 sentyabr, 2020 .
    3. ^ abvdBarbara Liskov bilan Jon Guttag (2000). Java dasturini ishlab chiqish – mavhumlashtirish, spetsifikatsiya va ob’ektga yo’naltirilgan dizayn. AQSh, Addison Uesli. ISBN9780201657685 .
    4. ^ Chaudxari, Garri H. (2014 yil 28-iyul). “Java dasturlash intervyusini buzish :: 2000+ Java Interview Que / Ans” . Olingan 29 may, 2016 .
    5. ^ Java 5.0 bir nechta yangi til xususiyatlarini qo’shdi ( loop uchun kengaytirilgan, avtookslash, vararglar va izohlar ), ular xuddi shunday (va raqobatdosh) kiritilganidan keyin C # til. [1]Arxivlandi 2011 yil 19 mart, soat Orqaga qaytish mashinasi[2]Arxivlandi 2006 yil 7 yanvar, soat Orqaga qaytish mashinasi
    6. ^ Gosling, Jeyms; Makgilton, Genri (1996 yil may). “Java til muhiti”. Arxivlandi asl nusxasidan 2014 yil 6 mayda . Olingan 6 may, 2014 .
    7. ^ Gosling, Jeyms; Joy, Bill; Stil, Yigit; Bracha, Gilad. “Java tilining spetsifikatsiyasi, 2-nashr”. Arxivlandi asl nusxasidan 2011 yil 5 avgustda . Olingan 8 fevral, 2008 .
    8. ^“Dasturlash tillarining A-Z: Modula-3”. Computerworld.au. Arxivlandi asl nusxasi 2009 yil 5-yanvarda . Olingan 9 iyun, 2010 .
    9. ^Niklaus Virt bir qator ommaviy tadbirlarda bayon etilgan, masalan. 2005 yil sentyabr oyida Moskvadagi Politexnika muzeyida o’tkazilgan ma’ruzada (rus tilida bir nechta mustaqil dastlabki hisoblar mavjud, masalan, audio yozuv bilan: Filippova, Elena (2005 yil 22 sentyabr). “Moskvadagi Politexnika muzeyida Niklaus Virtning ma’ruzasi”.
    10. ), Sun Java dizayn jamoasi Java chiqarilishidan bir necha yil oldin Oberon kompilyator manbalarini litsenziyalashgan va uni o’rganib chiqqan: a (nisbiy) ixchamlik, turlarning xavfsizligi, axlat yig’ish, sinflar uchun ko’p meros yo’q – bularning barchasi asosiy dizayn xususiyatlari Java va Oberon tomonidan birgalikda foydalaniladi.
    11. ^Patrik Naughton keltiradi Maqsad-C Java dasturlash tili dizayniga kuchli ta’sir sifatida, diqqatga sazovor to’g’ridan-to’g’ri derivativlarga Java interfeyslari kiradi (Objective-C dan olingan) protokol ) va ibtidoiy o’rash sinflari. [3]Arxivlandi 2011 yil 13 iyul, soat Orqaga qaytish mashinasi
    12. ^ TechMetrix Research (1999). “Java tarixi” (PDF) . Java dastur serverlari haqida hisobot. Arxivlandi asl nusxasi (PDF) 2010 yil 29 dekabrda. Loyiha ushbu nom ostida amalga oshirildi yashil va til eski modelga asoslangan edi UCSD Paskal, bu izohlovchi kodni yaratishga imkon beradi.
    13. ^“Jeyms Gosling bilan suhbat – ACM navbati”. Queue.acm. 2004 yil 31 avgust. Arxivlandi asl nusxasidan 2015 yil 16 iyulda . Olingan 9 iyun, 2010 .
    14. ^ 1996 yil yozida Quyosh hozirgi AWT voqea modeli va JavaBeans komponentlari arxitekturasi uchun kashshofni loyihalashtirmoqda. Borland bu jarayonga katta hissa qo’shdi. Biz Delphi Object Pascal dasturiga juda sinchkovlik bilan qaradik va ularning Java dasturlash tili va uning API-lari bilan o’zaro ta’sirini tushunish uchun bog’langan usul ma’lumotnomalarining ishchi prototipini yaratdik.Microsoft delegatlari haqida oq qog’oz
    15. ^“Chapel spec (Rahmat)” (PDF) . Cray Inc. 2015 yil 1-oktabr. Arxivlandi (PDF) asl nusxasidan 2016 yil 5 fevralda . Olingan 14 yanvar, 2016 .
    16. ^“Gambas hujjatlariga kirish”. Gambas veb-sayti. Arxivlandi asl nusxasidan 2017 yil 9 oktyabrda . Olingan 9 oktyabr, 2017 .
    17. ^“Facebook Savol-javoblari: Hack PHP dunyosiga statik yozuvlarni olib keladi”. InfoWorld. 2014 yil 26 mart. Arxivlandi asl nusxasidan 2015 yil 13 fevralda . Olingan 11 yanvar, 2015 .
    18. ^“Bir marta yozing, qayerga qochasiz?”. Kompyuter haftaligi. 2002 yil 2-may . Olingan 27 iyul, 2009 .
    19. ^ abv“Java ™ dasturlash tilining 1.2 dizayn maqsadlari”. Oracle. 1999 yil 1-yanvar. Arxivlandi asl nusxasidan 2013 yil 23 yanvarda . Olingan 14 yanvar, 2013 .
    20. ^ ab McMillan, Robert (2013 yil 1-avgust). “Java o’z Mojosini yo’qotadimi?”. simli. Arxivlandi asl nusxasidan 2017 yil 15 fevralda . Olingan 8 mart, 2017 . Java, hech bo’lmaganda kompyuter dasturlash tillarining o’zgaruvchan dunyosini kuzatib boradigan bitta kiyimga ko’ra, kamayib bormoqda. O’n yildan oshiq vaqt mobaynida u hukmronlik qilmoqda TIOBE Dasturlash Jamiyat indekslari va yana yuqori darajaga ko’tarildi – bu turli xil tillarning qanchalik shov-shuvga ega ekanligini o’lchash uchun Internet-qidiruv natijalari kabi narsalarni ko’rib chiqadigan dasturiy ta’minot ishlab chiqaruvchilarining g’ayrati. Ammo so’nggi paytlarda Java sirg’alib bormoqda.
    21. ^ Chan, Rozali (22 yanvar, 2019). “Dasturchilar uchun” Facebook “ma’lumotlariga ko’ra eng mashhur 10 ta dasturlash tili ‘ “. Business Insider. Arxivlandi asl nusxasidan 2019 yil 29 iyunda . Olingan 29 iyun, 2019 .
    22. ^“JavaOne 2013 sharhi: Java narsalar Internetini egallaydi”. www.oracle. Arxivlandi asl nusxasidan 2016 yil 19 aprelda . Olingan 19 iyun, 2016 .
    23. Alt URL
    24. ^“Nima uchun Java-ning eski versiyalarini tizimimdan o’chirib tashlashim kerak?”. Oracle . Olingan 9 sentyabr, 2016 .
    25. ^ Byous, Jon (1998 yil). “Java texnologiyasi: dastlabki yillar”. Sun Developer Network. Quyosh mikrosistemalari. Arxivlandi asl nusxasi 2005 yil 20 aprelda . Olingan 22 aprel, 2005 .
    26. ^ Ob’ektga yo’naltirilgan dasturlash “Java texnologiyasining tarixi”. Sun Developer Network. v. 1995 yil. Arxivlandi asl nusxasidan 2010 yil 10 fevralda . Olingan 30 aprel, 2010 .
    27. ^ Merfi, Kieron (1996 yil 4 oktyabr). “Xo’sh, nima uchun ular uni Java deb atashga qaror qildilar?”. JavaWorld . Olingan 2020-07-13 .
    28. ^ Kabutz, Xaynts; Bir marta eman ustigaArxivlandi 2007 yil 13 aprel, soat Orqaga qaytish mashinasi. Artima. Qabul qilingan 2007 yil 29 aprel.
    29. ^“JAVASOFT SHIPS JAVA 1.0”. Arxivlandi asl nusxasi 2007 yil 10 martda . Olingan 13 may, 2018 .
    30. ^Java bilan ob’ektga yo’naltirilgan dasturlash: Essentials and Applications. Tata McGraw-Hill ta’limi. p. 34.
    31. ^“JSG – Java Study Group”. open-std. Arxivlandi asl nusxasidan 2006 yil 25 avgustda . Olingan 2 avgust, 2006 .
    32. ^“Nima uchun Java ™ ikki marta standartlashtirilmagan edi” (PDF) . Arxivlandi (PDF) asl nusxasidan 2014 yil 13 yanvarda . Olingan 3 iyun, 2018 .
    33. ^“ECMA nima va nima uchun Microsoft unga g’amxo’rlik qiladi”. Arxivlandi asl nusxasidan 2014 yil 6 mayda . Olingan 6 may, 2014 .
    34. ^“Java Community Process veb-sayti”. Jcp. 2010 yil 24 may. Arxivlandi asl nusxasidan 2006 yil 8 avgustda . Olingan 9 iyun, 2010 .
    35. ^“JAVAONE: Sun – Java-ning asosiy qismi ochiq manbada”. GrnLight. Arxivlandi asl nusxasidan 2014 yil 27 mayda . Olingan 26 may, 2014 .
    36. ^“Quyoshning Java Xushxabarchisi sifatida rivojlanayotgan roli”. O’Reilly Media. Arxivlandi asl nusxasidan 2010 yil 15 sentyabrda . Olingan 2 avgust, 2009 .
    37. ^“Oracle va Java”. oracle. Oracle korporatsiyasi. Asl nusxasidan 2010 yil 31 yanvarda arxivlangan . Olingan 23 avgust, 2010 . Oracle 1995 yilda paydo bo’lganidan beri Java-ning etakchi va muhim tarafdori bo’lib kelmoqda va ishtirok etish va shaffoflik jamoatchiligini rivojlantirishga qaratilgan tinimsiz majburiyat bilan Java texnologiyasining boshqaruvchisi sifatida yangi rolni o’z zimmasiga oldi. CS1 maint: BOT: original-url holati noma’lum (havola)
    38. ^Gosling, Jeyms (2010 yil 9-aprel). “Davom etish vaqti . “Yangi yo’lda. Asl nusxasidan arxivlangan 2010 yil 5-noyabr . Olingan 16-noyabr, 2011 . CS1 maint: BOT: original-url holati noma’lum (havola)
    39. ^ Mavzu, Dalibor. “Pluginsiz Internetga o’tish”. Arxivlandi asl nusxasidan 2016 yil 16 martda . Olingan 15 mart, 2016 .
    40. ^“Java texnologiyasi haqida bilib oling”. Oracle. Arxivlandi asl nusxasidan 2011 yil 24 noyabrda . Olingan 21-noyabr, 2011 .
    41. ^://www.oracle/java/technologies/java-se-support-roadmap.html
    42. ^“JAVASOFT SHIPS JAVA 1.0”. Arxivlandi asl nusxasi 2007 yil 10 martda . Olingan 5 fevral, 2008 .
    43. ^ Chander, Sharat. “Java SE 11 bilan tanishish”. oracle. Arxivlandi asl nusxasidan 2018 yil 26 sentyabrda . Olingan 26 sentyabr, 2018 .
    44. ^“Java Card haqida umumiy ma’lumot”. Oracle Technology Network. Oracle. Arxivlandi asl nusxasidan 2015 yil 7 yanvarda . Olingan 18 dekabr, 2014 .
    45. ^“Java Platform, Micro Edition (Java ME)”. Oracle Technology Network. Oracle. Arxivlandi asl nusxasidan 2015 yil 4 yanvarda . Olingan 18 dekabr, 2014 .
    46. ^“Java SE”. Oracle Technology Network. Oracle. Arxivlandi asl nusxasidan 2014 yil 24 dekabrda . Olingan 18 dekabr, 2014 .
    47. ^“Java Platform, Enterprise Edition (Java EE)”. Oracle Technology Network. Oracle. Arxivlandi asl nusxasidan 2014 yil 17 dekabrda . Olingan 18 dekabr, 2014 .
    48. ^“JVM (Java Virtual Machine) platformasi bog’liqmi yoki platforma mustaqilmi? JVM dan foydalanishning afzalligi nimada va Java tarjima qilingan til bo’lishi kerakmi?”. Programmer Interview. Arxivlandi asl nusxasidan 2015 yil 19 yanvarda . Olingan 19 yanvar, 2015 .
    49. ^ Jelovic, Dejan. “Why Java will always be slower than C++”. Arxivlandi asl nusxasi 2008 yil 11 fevralda . Olingan 15 fevral, 2008 .
    50. ^ Google. “C ++ / Java / Go / Scala-da tsiklni aniqlash” (PDF) . Olingan 12 iyul, 2012 .
    51. ^“Symantec’s Just-In-Time Java Compiler To Be Integrated into Sun JDK 1.1”. Arxivlandi asl nusxasidan 2010 yil 28 iyunda . Olingan 1 avgust, 2009 .
    52. ^ Salcic, Zoran; Park, Heejong; Teich, Jürgen; Malik, Avinash; Nadeem, Muhammad (July 22, 2017). “Noc-HMP: A Heterogeneous Multicore Processor for Embedded Systems Designed in SystemJ”. ACM Transactions on Design Automation of Electronic Systems. 22 (4): 73. doi:10.1145/3073416. ISSN1084-4309. S2CID11150290.
    53. ^“NullPointerException”. Oracle. Arxivlandi asl nusxasidan 2014 yil 6 mayda . Olingan 6 may, 2014 .
    54. ^“Exceptions in Java”. Artima. Arxivlandi asl nusxasidan 2009 yil 21 yanvarda . Olingan 10 avgust, 2010 .
    55. ^“Java HotSpot™ Virtual Machine Performance Enhancements”. Oracle. Arxivlandi asl nusxasidan 2017 yil 29 mayda . Olingan 26 aprel, 2017 .
    56. ^“Java HotSpot VM Options”. Oracle. 2010 yil 7 sentyabr. Arxivlandi asl nusxasidan 2011 yil 6 martda . Olingan 30 iyun, 2012 .
    57. ^“Garbage-First Collector”. docs.oracle. Arxivlandi asl nusxasidan 2016 yil 9 martda . Olingan 15 mart, 2016 .
    58. ^“Operator Overloading (C# vs Java)”. C# for Java Developers. Microsoft. Arxivlandi asl nusxasidan 2015 yil 7 yanvarda . Olingan 10 dekabr, 2014 .
    59. ^“Multiple Inheritance of State, Implementation, and Type”. Java ™ darsliklari. Oracle. Arxivlandi asl nusxasidan 2014 yil 9 noyabrda . Olingan 10 dekabr, 2014 .
    60. ^“Lesson: A Closer Look at the Hello World Application”. The Java™ Tutorials > Getting Started. Oracle korporatsiyasi. Arxivlandi asl nusxasidan 2011 yil 17 martda . Olingan 14 aprel, 2011 .
    61. ^“Deprecated APIs, Features, and Options”. www.oracle . Olingan 31 may, 2019 .
    62. ^“Applet (Java Platform SE 7 )”. docs.oracle . Olingan 1 may, 2020 .
    63. ^“What Is a JSP Page? – The Java EE 5 Tutorial”. docs.oracle . Olingan 1 may, 2020 .
    64. ^“Trail: Creating a GUI With JFC/Swing (The Java™ Tutorials)”. docs.oracle . Olingan 1 may, 2020 .
    65. ^“Removed from JDK 11, JavaFX 11 arrives as a standalone module” . Olingan 13 oktyabr, 2020 .
    66. ^“Getting Started with JavaFX: Hello World, JavaFX Style | JavaFX 2 Tutorials and Documentation”. docs.oracle . Olingan 1 may, 2020 .
    67. ^“Java va Scala tizimlari ovozsiz” (PDF) . Arxivlandi (PDF) asl nusxasidan 2016 yil 28 noyabrda . Olingan 20 fevral, 2017 .
    68. ^ Arnold, Ken. “Generics Considered Harmful”. java. Archived from the original on October 10, 2007 . Olingan 10 sentyabr, 2015 . CS1 maint: BOT: original-url holati noma’lum (havola)
    69. . More comments to the original article available at earlier archive snapshots like .
    70. ^ Jelovic, Dejan. “Why Java Will Always Be Slower than C++”. www.jelovic. Arxivlandi asl nusxasi 2008 yil 11 fevralda . Olingan 17 oktyabr, 2012 .
    71. ^ Owens, Sean R. “Java va unsigned int, imzosiz kalta, imzosiz bayt, imzosiz uzun va hk (yoki aksincha, uning etishmasligi)”. Arxivlandi asl nusxasi 2009 yil 20 fevralda . Olingan 4-iyul, 2011 .
    72. ^ Kahan, William. “Qanday qilib Java-ning suzuvchi nuqtasi hamma uchun hammani azoblaydi” (PDF) . Electrical Engineering & Computer Science, University of California at Berkeley. Arxivlandi (PDF) from the original on September 5, 2012 . Olingan 4 iyun, 2011 .
    73. ^“Java-ni tekshirdingizmi?”. Arxivlandi asl nusxasi 2012 yil 21 sentyabrda . Olingan 23 dekabr, 2011 .
    74. ^ Cadenhead, Rogers (November 20, 2017), Understanding How Java Programs Work , olingan 26 mart, 2019
    75. ^ Woolf, Nicky (May 26, 2016). “Google wins six-year legal battle with Oracle over Android code copyright”. The Guardian. ISSN0261-3077 . Olingan 26 mart, 2019 .
    76. ^“Collections Framework Overview”. Java hujjatlari. Oracle. Arxivlandi from the original on December 31, 2014 . Olingan 18 dekabr, 2014 .
    77. ^“Java™ Security Overview”. Java hujjatlari. Oracle. Arxivlandi from the original on January 3, 2015 . Olingan 18 dekabr, 2014 .
    78. ^“Trail: Internationalization”. Java ™ darsliklari. Oracle. Arxivlandi from the original on December 31, 2014 . Olingan 18 dekabr, 2014 .
    79. ^“How to Write Doc Comments for the Javadoc Tool”. Oracle Technology Network. Oracle. Arxivlandi from the original on December 18, 2014 . Olingan 18 dekabr, 2014 .
    80. ^ Niccolai, James (January 24, 2001). “Sun, Microsoft settle Java lawsuit”. JavaWorld. IDG yangiliklar xizmati . Olingan 2020-07-13 .
    81. ^ van Gurp, Jilles (2007 yil 13-noyabr). “Google Android: dastlabki taassurotlar va tanqid”. Javalobby . Olingan 7 mart, 2009 . Ochig’ini aytsam, nega Google u erda mavjud bo’lgan ko’plab dasturlarni e’tiborsiz qoldirmoqchi ekanligini tushunmayapman. Menga bu erda “bu erda ixtiro qilinmagan” yomon ish kabi ko’rinadi. Oxir oqibat, bu asrab olishni sekinlashtiradi. Mobil dunyo uchun allaqachon juda ko’p Java platformalari mavjud va bu yana biri
    82. ^ Mullin, Joe. “Google guilty of infringement in Oracle trial; future legal headaches loom”. Qonun va tartibsizlik. Ars Technica. Arxivlandi from the original on May 8, 2012 . Olingan 8 may, 2012 .
    83. ^ Mullin, Joe (May 31, 2012). “Google wins crucial API ruling, Oracle’s case decimated”. Ars Technica. Arxivlandi asl nusxasidan 2017 yil 12 martda . Olingan 1 iyun, 2012 .
    84. ^ Rosenblatt, Seth (May 9, 2014). “Court sides with Oracle over Android in Java patent appeal”. CNET. Arxivlandi asl nusxasidan 2014 yil 10 mayda . Olingan 10 may, 2014 .
    85. ^ Mullin, Joe (May 26, 2016). “Google beats Oracle—Android makes “fair use” of Java APIs”. Ars Technica. Arxivlandi asl nusxasidan 2017 yil 20 yanvarda . Olingan 26 may, 2016 .
    86. ^ Farivar, Cyrus (March 27, 2018). ” ” Google’s use of the Java API packages was not fair,” appeals court rules”. Ars Technica . Olingan 6 avgust, 2019 .
    87. ^ Lee, Timothy (April 23, 2019). “Google Oliy suddan API mualliflik huquqiga oid halokatli qarorni bekor qilishni so’raydi”. Ars Technica . Olingan 23 aprel, 2019 .

    Asarlar keltirilgan

    • Gosling, James; Joy, Bill; Steele, Guy; Bracha, Gilad; Buckley, Alex (2014). The Java® Language Specification (PDF) (Java SE 8 tahr.). CS1 maint: ref = harv (havola)
    • Gosling, James; Quvonch, Bill; Steele, Guy L., Jr.; Bracha, Gilad (2005). The Java Language Specification (3-nashr). Addison-Uesli. ISBN0-321-24678-0 .
    • Lindxolm, Tim; Yellin, Frank (1999). Java virtual mashinasining spetsifikatsiyasi (2-nashr). Addison-Uesli. ISBN0-201-43294-3 .

    Tashqi havolalar

    • Ning lug’at ta’rifi Java Vikilug’atda
    • Bilan bog’liq ommaviy axborot vositalari Java Vikimedia Commons-da
    • Java Vikikitoblarda
    • Learning materials related to Java at Wikiversity

    Bir Dona Videoda Java Dasturlash Tilini O Rganamiz – Скачать mp3 бесплатно

    Здесь Вы можете прослушать и скачать песни по запросу Bir Dona Videoda Java Dasturlash Tilini O Rganamiz в высоком качестве. Для того чтобы прослушать песню нажмите на кнопку «Слушать», если Вы хотите скачать песню или посмотреть клип нажмите на кнопку «Скачать» и Вы попадете на страницу с возможностью скачать песню, прослушать ее и посмотреть клип. Рекомендуем прослушать первую композицию Java Dasturlash Tilini Bitta Videoda O Rganing длительностью 1 ч, 4 мин и 14 сек, размер файла 84.54 MB.

    Сейчас слушают

    Bir Dona Videoda Java Dasturlash Tilini O Rganamiz

    Seckou Keita Peace Keeping

    7 Rings Edit Audio

    Edd Kam Una Noche Más Feat Facel

    Фохиша Эрга Хиёнат

    Доира Чалиш Усуллари

    Carmen Sevilla Tengo Miedo Torero

    Группа Ласковый Май

    I Just Can T Feat 2B1 Avrex

    Курбанов Шихназар Хуш Енди

    Анивар Ты Мой День И Ночь

    Life Sensation Robert Black

    Ты Мой День И Ночь

    Слепили Бабу На Морозе

    Silva Gunbardhi Ft Mandi Ft Dafi Te Ka Lali Shpirt Official Video Hd

    Aygun Feat Rauf Aya 2018 Music Xxx Official

    Рамзан Вачаев Хьо Йолчу Вохар Ву Хьо Йига Д1А

    Java Dasturlash tili O`zbek tilida

    Java Dasturlash tili O`zbek tilida 1.3 APK для Android 4.2+

    Версия 1.3 для Android 4.2+
    Обновить 2021-08-26
    Устанавливает 100++
    Размер файла 4.594.711 bytes
    Разрешения просматривать разрешения
    Какие новости

    История версий:

    • 1. LATEST. Java Dasturlash tili O`zbek tilida 1.3 APK (2021-08-26, 4 MB)
    • 2. Java Dasturlash tili O`zbek tilida 1.2 APK (2021-08-23, 4 MB)
    • 3. Java Dasturlash Tili 1.0 APK (2021-06-10, 3 MB)

    Показать больше

    Vortex 9 – shooter game

    Varies with device

    Launcher iOS 16

    Varies with device

    Varies with device

    Domino’s Pizza: Food Delivery

    Varies with device

    Varies with device

    20 Minutes Till Dawn

    Varies with device

    Phone 14 Launcher, OS 16

    Varies with device

    Показать больше

    • What Sticker Maker For WA
    • Slingshot Smash-Shooting Range
    • Hily: Dating app. Meet People.
    • Speed Test & Wifi Analyzer
    • My Dog:Puppy Simulator Games

    Хит приложения для Android(2019)

    • TaxiF – A Better Way to Ride
    • Gopinion: Gift Cards & Surveys
    • 100 Doors Challenge
    • Videoleap – Video Editor/Maker
    • Storytel: Audiobooks & Ebooks

    Последние обзоры приложений(12422)

    • Radio Germany – internetradio
    • Melorra Jewellery Shopping App
    • Seamless: Local Food Delivery
    • The Metronome by Soundbrenner

    APKfun – since 2014
    11923 NE Sumner St STE 900428 Portland, Oregon, 97250, US

Qiziqarli malumotlar
Java dasturlash asoslarini bitta video darsda o’rganing