Java versiyasi tarixi

Vikipediya, ochiq ensiklopediya

Java tili JDK dan keyin bir qancha o'zgarishlarga uchradi 1.0, shuningdek, standart kutubxonaga ko'plab sinflar shuningdek paketlar qo'shildi. J2SE dan beri 1.4, Java tilining evolyutsiyasi Java platformasiga qo'shimcha va o'zgarishlarni taklif qilish va belgilash uchun Java Spetsifikatsiya so'rovlaridan (JSR) foydalanadigan Java Jamoatchilik jarayoni (JCP) tomonidan boshqariladi. Til Java Language Specification (JLS) bilan belgilanadi; JLSga o'zgartirish JSR ostida nazorat qilinadi 901 . 2017-yil sentabr oyida Java platformasining bosh arxitektori Mark Reynxold o‘sha paytdagi ikki yillik jadvalga emas, balki “har olti oyda bitta xususiyatli reliz”ga o‘zgartirishni taklif qildi. [1][2] Ushbu taklif keyingi barcha versiyalar uchun kuchga kirdi shunigdek hozir ham joriy relizlar jadvali.

Til o'zgarishlariga qo'shimcha ravishda, yillar davomida Java sinf kutubxonasiga boshqa o'zgarishlar kiritildi, ular JDKda bir necha yuz sinfdan oshdi. J2SEda 1,0 dan uch mingdan ortiq 5. Swing va Java2D kabi to'liq yangi APIlar va ko'plab original JDKlar taqdim etildi. 1.0 sinflari va usullari eskirgan . Ba'zi dasturlar Java dasturlarini Java platformasining bir versiyasidan eskisiga (masalan, Java 5.0 1.4 ga qaytarildi)


Oracle Java SE qo‘llab-quvvatlash yo‘l xaritasiga kelsak, [3] 18-versiyasi so‘nggi versiyalar va 17, 11 va 8-versiyalari hozirda qo‘llab-quvvatlanadigan uzoq muddatli qo‘llab-quvvatlash (LTS) versiyalari bo‘lib, Oracle mijozlar Oracle Premier yordamini oladilar. Java 8 LTS tijorat maqsadlarida foydalanish uchun so'nggi bepul dasturiy ta'minot ommaviy yangilanishi Oracle tomonidan 2022-yilning mart oyida chiqarilgan, Oracle esa ishlab chiqish [3] va shaxsiy foydalanish sababli bepul Java 8 yangilanishlarini chiqarishda davom etmoqda. [4] Java 7 endi ommaviy qo'llab-quvvatlanmaydi. Java 11 uchun Oracle tomonidan jamoatchilikka uzoq muddatli yordam berilmaydi; Buning o'rniga Eclipse Adoptium yoki boshqalar kabi kengroq OpenJDK hamjamiyati ishni bajarishi kutilmoqda. [5]

Java 17 oxirgi (3-chi) LTS 2021-yil 14-sentabrda chiqarilgan. [6]

Java 19 umumiy mavjudligi 2022-yil 20-sentabrda boshlangan. [7]

Mundarija


Chiqarish jadvali[tahrir | manbasini tahrirlash]

Andoza:Java version history/tableAndoza:Java version history/table 

Birinchi versiya 1996 yil 23 yanvarda chiqarilgan [8][9] Birinchi barqaror versiya JDK 1.0.2 Java 1 deb ataladi. [9]

 

1997-yil 19-fevraldagi nashrga kiritilgan asosiy qoʻshimchalar: [10]

  • AWT hodisasi modelini keng qamrovli qayta jihozlash
  • tilga qo'shilgan ichki sinflar
  • JavaBeans
  • JDBC
  • RMI va serializatsiya
  • faqat Introspectionni qo'llab-quvvatlagan aks ettirish, ish vaqtida hech qanday o'zgartirish mumkin emas edi. (Ob'yektlarni aks ettiruvchi tarzda o'zgartirish imkoniyati J2SE 1.2 da AccessibleObject sinfini va uning Field sinfi kabi kichik sinflarini joriy qilish orqali qo'shilgan. )
  • Symantec tomonidan JavaSoft uchun ishlab chiqarilgan Microsoft Windows platformalarida JIT (Just In Time) kompilyatori
  • Taligentdan kelib chiqqan xalqarolashtirish va Unicode yordami

1998 yil 8 dekabrda chiqarilgan va J2SE orqali keyingi nashrlar 5.0 retrospektiv rebrendlangan Java 2 va versiya nomi "J2SE" ( Java 2 Platformasi, Standard Edition ) asosiy platformani J2EE ( Java 2 Platform, Enterprise Edition ) va J2ME ( Java 2 Platform, Micro Edition ) dan farqlash uchun JDK o'rnini egalladi. Bu Java-ning juda muhim versiyasi bo'ldi, chunki u Java platformasining hajmini 59 ta paketdagi 1520 sinfga 3 baravar oshirdi. Asosiy qoʻshimchalar kiritilgan: [11]

  • strictfp kalit so'zi (JVM 17 tomonidan eskirgan kalit so'z, yangi kodda ishlatilmasligi kerak)
  • Swing grafik API asosiy sinflarga birlashtirilgan
  • Sun's JVM birinchi marta JIT kompilyatori bilan jihozlangan
  • Java plagini
  • Java IDL, CORBA o'zaro ishlashi uchun IDL ilovasi
  • To'plamlar ramkasi

J2SE 1.3[tahrir | manbasini tahrirlash]

  2000 yil 8-maydagi nashrdagi eng muhim o'zgarishlar: [12][13]

  • HotSpot JVM kiritilgan (HotSpot JVM birinchi marta 1999 yil aprel oyida J2SE uchun chiqarilgan 1.2 JVM)
  • RMI CORBA bilan ixtiyoriy muvofiqlikni qo'llab-quvvatlash uchun o'zgartirildi
  • Java nomlash va katalog interfeysi (JNDI) asosiy kutubxonalarga kiritilgan (ilgari kengaytma sifatida mavjud bo`lgan)
  • Java platformasi tuzatuvchisi arxitekturasi (JPDA)
  • JavaSound
  • Sintetik proksi sinflar 

2002-yil 6-fevraldagi reliz JSR 59 sifatida Java Community Process doirasida ishlab chiqilgan Java platformasining birinchi nashri edi. Asosiy oʻzgarishlar kiritilgan: [14][15]

  • Til o'zgarishlari
    • assert kalit so'zi ( JSR 41 da ko'rsatilgan)
  • Kutubxonani yaxshilash
    • Perl muntazam ifodalaridan keyin modellashtirilgan muntazam ifodalar
    • Istisno zanjiri istisnoga asl quyi darajadagi istisnolarni qamrab olish imkonini beradi
    • Internet protokolining 6-versiyasini ( IPv6 ) qo'llab-quvvatlash
    • Bloklanmagan I/U (NIO deb nomlangan) ( JSRda ko'rsatilgan 51 )
    • Logging API ( JSRda ko'rsatilgan 47 )
    • JPEG va PNG kabi formatlarda tasvirlarni oʻqish va yozish uchun Image I/O API
    • Integratsiyalashgan XML tahlilchisi va XSLT protsessor ( JAXP ) ( JSRda ko'rsatilgan 5 va JSR 63 )
    • Integratsiyalashgan xavfsizlik va kriptografiya kengaytmalari ( JCE, JSSE, JAAS )
    • Java Web Start kiritilgan (Java Web Start birinchi marta 2001 yil mart oyida J2SE uchun chiqarilgan 1.3) ( JSRda ko'rsatilgan 56 )
    • Preferences API ( java.util.prefs )

Java 1.4 uchun ommaviy qo'llab-quvvatlash va xavfsizlik yangilanishlari 2008 yil oktyabr oyida tugadi. Oracle mijozlari uchun pulli xavfsizlik yangilanishlari 2013-yil fevralida tugatildi. [16]   2004-yil 30-sentabrdagi nashr dastlab 1.5 raqamiga ega edi, u hanuzgacha ichki versiya raqami sifatida ishlatiladi. Raqam "J2SE ning etuklik, barqarorlik, kengayish va xavfsizlik darajasini yaxshiroq aks ettirish" uchun o'zgartirildi. [17] Ushbu versiya JSR 176 ostida ishlab chiqilgan.

Java SE 5 2008-yil 8-aprelda ommaviy yangilanishlar davriga kirdi; 2009-yil 3-noyabrdan boshlab yangilanishlar endi omma uchun mavjud emas. Yangilanishlar Oracle-ning pullik mijozlari uchun 2015-yil mayigacha mavjud edi [3]

Tiger bir qator muhim yangi til xususiyatlarini qo'shdi: [18][19]

  • Umumiy ma'lumotlar: to'plamlar uchun kompilyatsiya vaqtidagi (statik) turdagi xavfsizlikni ta'minlaydi va ko'pgina turdagi yozuvlarga (turni o'zgartirish) ehtiyojni yo'q qiladi ( JSR 14 tomonidan ko'rsatilgan)
  • Metadata : izohlar deb ham ataladi; sinflar va usullar kabi til konstruktsiyalarini qo'shimcha ma'lumotlar bilan belgilashga imkon beradi, keyinchalik ular metadatadan xabardor yordamchi dasturlar tomonidan qayta ishlanishi mumkin ( JSR 175 tomonidan ko'rsatilgan)
  • Autoboxing /unboxing: ibtidoiy turlar (masalan, int ) va ibtidoiy oʻrash sinflari (masalan, Integer ) oʻrtasida avtomatik konvertatsiya qilish ( JSR 201 tomonidan koʻrsatilgan)
  • Ro'yxatlar : enum kalit so'zi turdagi xavfsiz, tartiblangan qiymatlar ro'yxatini yaratadi (masalan, Day. MONDAY, Day. TUESDAY va boshqalar); Ilgari bunga faqat turdagi xavfsiz bo'lmagan doimiy tamsayılar yoki qo'lda tuzilgan sinflar (typesafe enum naqsh) orqali erishish mumkin edi ( JSR 201 tomonidan ko'rsatilgan)
  • Varargs : usulning oxirgi parametri endi tur nomidan keyin uchta nuqta (masalan, void drawtext(String... lines) ) yordamida e'lon qilinishi mumkin; qo'ng'iroq kodida ushbu turdagi parametrlarning istalgan sonidan foydalanish mumkin va ular keyin usulga o'tish uchun massivga joylashtiriladi yoki muqobil ravishda chaqiruvchi kod shu turdagi massivni o'tkazishi mumkin.
  • for each bir sikl uchun kengaytirilgan: for tsikli sintaksisi massivning har bir a'zosi yoki har qanday Iterable, masalan, standart Collection sinflari ( JSR 201 tomonidan ko'rsatilgan) ustida takrorlash uchun maxsus sintaksis bilan kengaytirilgan.
  • Ko'p tarmoqli Java dasturlari uchun ijro semantikasi yaxshilandi; Yangi Java xotira modeli oldingi spetsifikatsiyalarning murakkabligi, samaradorligi va ishlashi masalalarini hal qiladi [20]
  • Statik import

Standart kutubxonalarda quyidagi yaxshilanishlar ham amalga oshirildi:

  • RMI ob'ektlari uchun avtomatik stub yaratish
  • Swing : yangi teriga o'xshash ko'rinish va tuyg'u, sintez deb ataladi
  • java.util.concurrent to'plamidagi parallellik utilitlari [21]
  • Turli kirish oqimlari va buferlardan ma'lumotlarni tahlil qilish uchun skaner klassi

Java 5 - bu Microsoft Windows 98 va Windows ME -ni rasman qo'llab-quvvatlovchi Java-ning so'nggi versiyasidir [22], Windows Vista esa Windows-ning eng yangi versiyasi bo'lib, Java SE 5 oktabr oyida Java 5-ning amal qilish muddati tugashidan oldin qo'llab-quvvatlangan. 2009. [16]

Java 5 Update 5 (1.5.0_05) - bu Windows 95 ( Internet Explorer 5.5 o'rnatilgan) va Windows NT 4.0 da ishlash uchun Java-ning oxirgi versiyasidir. [23]

Java 1.5 uchun ommaviy qo'llab-quvvatlash va xavfsizlik yangilanishlari 2009 yil noyabr oyida tugadi. Oracle mijozlari uchun pulli xavfsizlik yangilanishlari 2015-yilning aprel oyida yakunlandi.

Ushbu versiya Java tili uchun yangi versiya tizimini taqdim etdi, garchi eski versiya tizimi ishlab chiquvchilar kutubxonalari uchun foydalanishda davom etdi:

  1. Reinhold. „Moving Java Forward Faster“ (2017-yil 6-sentyabr). Qaraldi: 2017-yil 16-sentyabr.
  2. „Calling 'all aboard' on the six-month Java release train“. theserverside.com (2017-yil 12-sentyabr). Qaraldi: 2017-yil 16-sentyabr.
  3. 3,0 3,1 3,2 „Oracle Java SE Support Roadmap“. www.oracle.com. Manba xatosi: Invalid <ref> tag; name "auto9" defined multiple times with different content
  4. „Oracle Java SE Support Roadmap“. Qaraldi: 2021-yil 17-fevral.
  5. Reinhold. „What does LTS mean for OpenJDK?“ (2018-yil 17-avgust). Qaraldi: 2018-yil 28-avgust.
  6. „JDK 17“. openjdk.java.net. Qaraldi: 2021-yil 26-avgust.
  7. „JDK 19“. openjdk.java.net. Qaraldi: 2022-yil 20-sentyabr.
  8. „JavaSoft ships Java 1.0“. 2007-yil 10-martda asl nusxadan arxivlangan. Qaraldi: 2008-yil 5-fevral.
  9. 9,0 9,1 Ortiz, C. Enrique. Mobile Information Device Profile for Java 2 Micro Edition: Developer's Guide. John Wiley & Sons, 2001. ISBN 978-0471034650. 2012-yil 30-mayda qaraldi. 
  10. Version 1.1 press release, Sun.
  11. Version 1.2 press release, Sun.
  12. Version 1.3 press release, Sun.
  13. „Version 1.3 full list of changes“. 2006-yil 7-noyabrda asl nusxadan arxivlangan.
  14. Version 1.4 press release.
  15. „Version full 1.4 list of changes“. 2007-yil 8-yanvarda asl nusxadan arxivlangan.
  16. 16,0 16,1 „Java 2 Platform 5.0 and Java for Business 5.0“. Oracle Corporation (2010). Qaraldi: 2012-yil 22-oktyabr. Manba xatosi: Invalid <ref> tag; name "oracle2010" defined multiple times with different content
  17. „Version 1.5.0 or 5.0?“. Oracle.
  18. Version 1.5 press release.
  19. Version 1.5 full list of changes.
  20. „JSR 133, 2.4 Why isn't this need met by existing specifications?“. Oracle.
  21. Goetz, Brian. Java Concurrency in Practice. Addison-Wesley, 2006 — xvii bet. ISBN 0-321-34960-1. 
  22. „Java 5.0 is no longer available on Java.com“. Java.com (2009-yil 3-noyabr). Qaraldi: 2016-yil 30-sentyabr.
  23. Lineback. „Misc Windows 2 – Nathan's Toasty Technology page“. Qaraldi: 2016-yil 30-sentyabr.