1. Sajarah versi Jawa

Sajarah Jawa diwiwiti ing taun 1991, nalika klompok programer Sun mutusake nggawe basa kanggo piranti cilik: remot kontrol TV, mesin kopi, pemanggang roti, kertu bank, lan liya-liyane.

Produsen piranti kasebut nggunakake prosesor sing beda banget kanggo ngontrol produke, mula dadi penting banget kanggo disambungake menyang arsitektur prosesor utawa OS tartamtu.

Pencipta Jawa mutusake kanggo ngilangi masalah kasebut dadi rong bagean: Program kasebut bakal dikompilasi ora dadi kode mesin kanggo prosesor tartamtu, nanging dadi kode perantara khusus. Sabanjure, kode penengah kasebut bakal dieksekusi dening program khusus sing diarani mesin virtual .

Umume programer nyebut komputer minangka mesin.

menarik.

C ++ dijupuk minangka basis kanggo basa Jawa lan banget simplified lan standar. Yen C ++ ngidini sampeyan nindakake 10 cara, banjur Jawa mung nyimpen siji. Ing sawetara cara, kaya transisi saka hieroglif menyang alfabet.

Jawa versi pisanan dirilis ing taun 1996. Wiwit wektu iku, Jawa miwiti pawai kamenangan ing saindenging jagad, sing banjur ngrangsang evolusi lan tuwuhing basa kasebut. Saiki, mayuta-yuta perpustakaan lan milyaran baris kode ditulis ing Jawa, lan versi Jawa anyar dirilis saben 6 sasi:

jeneng taun Jumlah kelas
JDK 1.0 1996 211
JDK 1.1 1997 477
J2SE 1.2 1998 1.524
J2SE 1.3 2000 1.840
J2SE 1.4 2002 2.723
J2SE 5.0 2004 3.279
Jawa SE 6 2006 3.793
Jawa SE 7 2011 4.024
Jawa SE 8 2014 4.240
Jawa SE 9 2017 6.005
Jawa SE 10 2018 6.002
Jawa SE 11 2018 4.411
Jawa SE 12 2019 4.433
Jawa SE 13 2019 4.515

Senajan versi Jawa dirilis ajeg, padha ora kabeh padha karo pinunjul kanggo programer: Jawa wis ngalami évolusi ing pas lan diwiwiti.


2. Jawa 2

Lompatan gedhe pisanan kedadeyan nalika diluncurake JDK 1.2. Wis dadi akeh inovasi ing kono sing nggawe Jawa jenenge Java 2 Platform Standard Edition utawa J2SE 1.2 kanggo singkatan.

Inovasi utama yaiku:

  • strictfptembung kunci
  • Perpustakaan Swing kanggo nggarap grafis
  • Compiler JIT, sing nyepetake eksekusi program Java
  • A set gedhe saka koleksi
  • Dhukungan Unicode lengkap: Jepang, Cina lan Korea.

Saiki, inovasi kasebut ora katon gedhe, nanging saben proyek gedhe tuwuh saka sing cilik. Jawa ora bakal dadi populer saiki yen saklompok cilik programer ora terus nambah basa 20 taun kepungkur.


3. Jawa 5

JDK 1.5 dirilis ing September 2004. Iku uga ngenalaken akèh inovasi, supaya ora bisa bantuan nanging pantes jeneng anyar: tinimbang versi 1.5, 1.6, lan 1.7, padha mutusaké kanggo nggunakake 5.0, 6.0, lan 7.0. Dadi, jeneng lengkap JDK 1.5 yaiku Java 2 Standard Edition 5.0

Pembaruan iki kalebu samubarang sing ora bisa dikembangake luwih lanjut basa kasebut.

Anotasi . Setengah saka kerangka modern utama dibangun ing anotasi, saka Spring lan Hibernate nganti JUnit.

Generik . Generik wis njupuk daya koleksi (lan akeh liyane) menyang dhuwur anyar. Kode wis dadi luwih prasaja, luwih kompak lan luwih aman.

Autoboxing / unboxing minangka konversi otomatis antarane jinis primitif lan jinis pambungkus. Iki nggawe luwih gampang kanggo nulis lan maca kode, lan nggawe koleksi luwih populer.

Daur foreachulang saiki nyathet paling ora setengah saka kabeh loop sing ditulis programer. Lan, mesthi, iku indispensable nalika nggarap koleksi.

Enum minangka fitur anyar liyane sing apik . Iki ngidini akeh perkara sing disederhanakake kanthi apik.

Iki ora kabeh inovasi: atusan kelas anyar ditambahake. Wangsulan: Bab ingkang utama iku padha mung inovasi tengen, lan menehi liyane kuat ngedongkrak popularitas Jawa.


4. Jawa 6

Java 6 dieling-eling amarga akeh dandan cilik lan ditinggalake nomer 2 ing jeneng: dudu "Java 2 Standard Edition 6.0", nanging mung "Java Standard Edition 6.0".

Ing ngisor iki sawetara inovasi sing menarik:

Java Compiler API ndadekake iku bisa kanggo nelpon compiler Jawa langsung saka kode. Tegese program sampeyan saiki bisa ngasilake teks sing makili kode kelas, ngumpulake kanthi nelpon metode Java Compiler API , banjur langsung nelpon metode kelas sing dikompilasi. Ana kabeh wilayah pembangunan ing ngendi kemampuan iki nyederhanakake urip.

Dadi bisa nglakokake JavaScript langsung ing program Java. Fitur iki muncul amarga JavaSE 6 kalebu mesin JavaScript Badhak.


5. Jawa 7

Java 7 dirilis ing Juli 2011. Mesthine ana akeh dandan, nanging programer mung bisa nambah bagean cilik saka apa sing direncanakake. Utamane, dheweke nambahake perkara kaya:

Pustaka anyar kanggo nggarap input lan output data. Dikenal minangka New Input Output API , dumunung ing java.niopaket kasebut.

Inferensi tipe otomatis Java compiler ing wektu kompilasi ngidini programer nulis kode sing kurang. Compiler dadi luwih pinter, lan iki mung wiwitan.

Pernyataan switch entuk kemampuan kanggo nggunakake strings minangka nilai cilik.

Manajemen sumber otomatis uga apik banget: Kanthi try-with-resourcesmbangun, program Jawa bisa nutup aliran data kanggo sampeyan nalika lagi ora perlu.

Akeh owah-owahan liyane, nanging ora pati penting ing tahap sinau basa Jawa saiki.


6. Jawa 8

Java 8 metu ing Maret 2014 lan minangka nganyari paling anyar ing Jawa.

Sing paling penting, programer ngelingi kanggo nambah ekspresi lambda lan antarmuka fungsional (anotasi @FunctionalInterface). Kita bakal nliti ing Level 21. Kode sampeyan ora bakal padha maneh.

Aliran uga ditambahake kanggo koleksi, sing, kanthi kombinasi ekspresi lambda, bisa nulis kode kanthi luwih kompak. Sanajan ora tansah luwih bisa diwaca.

menarik.

Lan owah-owahan gedhe katelu yaiku Java 8 ngenalake API anyar kabeh kanggo nggarap tanggal lan wektu - API Wektu Tanggal . Kita bakal sinau ing mangsa ngarep.


7. Jawa 9

Java 9 dirilis ing September 2017. Wiwit wektu iku, pangripta Jawa mutusake kanggo ngeculake versi anyar luwih kerep — saben nem sasi. Dheweke bisa uga kesengsem karo pendekatan sing diadopsi para pangembang browser Google Chrome.

Rilis Java 9 luwih fokus ing internal mesin Java. Bab sing paling penting sing digawa menyang programer biasa yaiku kemampuan kanggo mbagi program dadi modul. Iki trep banget yen sampeyan duwe puluhan ewu kelas utawa nalika kode sampeyan mbukak plugin kanthi dinamis.

Nanging mbokmenawa ora ana gunane kanggo kita ing mangsa ngarep.


8. Jawa 11

Nem sasi sawise Jawa 9 metu Jawa 10, lan nem sasi maneh Jawa 11 metu.

Akeh dandan cilik sing ditindakake sajrone wektu iki, nanging sampeyan mung bakal ngelingi loro:

Nambahake dhukungan kanggo Unicode 10. Saiki sampeyan bisa nggunakake emojis ing program Java. Sampeyan bisa nggarap dheweke kanthi cara sing padha karo jinis boolean:

Inferensi jinis wis apik, lan vartembung kunci , sing mesthi sampeyan seneng, katon.

Saiki sampeyan bisa nulis ing ngisor iki:

var str = "Hello";

Lan kompiler ngowahi iki dadi:

String str = "Hello";

Nanging ana uga sawetara losses. Pencipta Java ngeculake perpustakaan kayata JavaFX, Java EE, lan CORBA saka JDK 11.


9. Pentinge kompatibilitas

Nalika versi anyar dirilis, programer asring pengin miwiti saka ngeruk. Sawise kabeh, sapa sing pengin ndandani pirang-pirang kewan omo lawas nalika pancen positif kepiye kode kasebut kudu ditulis wiwit wiwitan?

Nanging sejarah ora ndhukung pendekatan kasebut. Saben programer ngeculake versi anyar program, 90% pangguna nggunakake versi lawas. Dheweke bisa nggunakake utawa nglirwakake fitur-fitur anyar program kasebut, nanging sing disengiti dening pangguna yaiku nalika ana sing bisa digunakake kanthi apik mandheg.

Akeh produk gedhe sing mati nalika programer ngeculake versi anyar sing ora kompatibel. Utawa mung nalika nggawe owah-owahan gedhe. Contone, gagasan kanggo ninggalake tombol Start ing Windows 8 ora narik kawigaten pangguna. Rilis Windows 10 ngasilake setengah saka apa sing wis dibusak ing Window 8.

Apa maneh, Windows ngidini sampeyan mbukak program sing ditulis 20 taun kepungkur kanggo Windows 95 utawa malah ditulis 30 taun kepungkur kanggo MS DOS 3.0 — bakal bisa digunakake. Iki minangka salah sawijining alasan kenapa Windows tetep populer.

Lan Jawa ora bakal populer kaya yen pangembang ora peduli karo kompatibilitas. Sawayah-wayah ana versi anyar saka mesin Java, versi anyar saka SDK, utawa owah-owahan utama kanggo kelas, kabeh kode Jawa ditulis wiwit Januari 1996 terus bisa.

Iki biasane digayuh kanthi mung nambah metode, kelas, lan paket anyar, tanpa ngilangi apa-apa. Pendekatan iki nduweni pro lan kontra.

Ing tangan siji, Jawa nyeret sak akeh-akehe bagasi arupa kode lawas, suboptimal, lan ora perlu. Ing sisih liya, proyek sampeyan sing ditulis ing Java 11 mesthi bisa nggunakake perpustakaan sing ditulis ing Java 8 sing nggunakake perpustakaan sing ditulis ing Jawa 5 lan Java 2. Kode hodgepodge iki bakal bisa digunakake kanthi becik.

Kanthi basa C++, perpustakaan sing disusun kanggo platform 32-bit lan 64-bit ora bisa digunakake ing proyek sing padha. Lan sampeyan bakal duwe sirah ageng yen dumadakan nemokake sing charjinis digunakake ing perpustakaan siji nggunakake siji bait, nalika liyane nggunakake rong bita.


10. Dipungkasi

Dadi, pangripta Jawa mutusake ora mbusak apa-apa, nanging mung nambah kelas lan paket anyar. Nanging kepiye carane supaya programer ngerti yen ana alternatif anyar sing layak kanggo solusi suboptimal sing ana?

Kanggo nindakake iki, padha teka karo @Deprecatedanotasi.

Yen sawetara metode utawa kelas ora digunakake, anotasi iki ditambahake ing jejere deklarasi kasebut. Iki tegese programer ora dianjurake kanggo nggunakake kode kasebut.

Sampeyan isih bisa nggunakake kelas utawa cara sing ora digunakake, nanging ora dianjurake.

Lan sepira kerepe wong nindakake perkara sing ora dianjurake? Meh tansah 🙂

Akeh kelas wis ora digunakake sajrone 20 taun - wis digunakake lan isih digunakake. Wong-wong wis kenal utawa mung trep. Nanging ana risiko sing bakal dibusak ing sawetara titik, supaya iku luwih apik ora kanggo nggunakake.

Kabeh IDE modern, kalebu IntelliJ IDEA, bisa nangani @Deprecatedanotasi kasebut. Jeneng kelas lan metode sing ora digunakake ditampilake nggunakake format strikethrough . Kaya iki:

Date date = new Date();
int day = date.getDay();

Kelas sing ora digunakake populer banget lan asring ditemokake ing kode, mula kita bakal langsung ndeleng sawetara.