1. Sejarah versi Java

Sejarah Java dimulai pada tahun 1991, ketika sekelompok pemrogram Sun memutuskan untuk membuat bahasa untuk perangkat kecil: remote control TV, pembuat kopi, pemanggang roti, kartu bank, dan sebagainya.

Pabrikan perangkat ini menggunakan prosesor yang sangat berbeda untuk mengontrol produk mereka, jadi sangat penting untuk terikat dengan arsitektur prosesor atau OS tertentu.

Pembuat Java memutuskan untuk memecah masalah menjadi dua bagian: Program mereka tidak akan dikompilasi menjadi kode mesin untuk prosesor tertentu, tetapi menjadi kode perantara khusus. Pada gilirannya, kode perantara itu akan dieksekusi oleh program khusus yang disebut mesin virtual .

Sebagian besar pemrogram menyebut komputer sebagai mesin.

Menarik.

C ++ diambil sebagai dasar untuk bahasa Java dan sangat disederhanakan dan distandarisasi. Jika C++ memungkinkan Anda melakukan sesuatu dengan 10 cara, maka Java hanya mempertahankan salah satunya. Dalam beberapa hal itu seperti transisi dari hieroglif ke alfabet.

Versi pertama Java dirilis pada tahun 1996. Sejak saat itu, Java memulai pawai kemenangannya di seluruh dunia, yang pada gilirannya merangsang evolusi dan pertumbuhan bahasa itu sendiri. Saat ini, jutaan perpustakaan dan miliaran baris kode ditulis di Java, dan versi baru Java dirilis setiap 6 bulan:

Nama Tahun 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

Meskipun versi Java dirilis secara teratur, mereka tidak semuanya memiliki signifikansi yang sama bagi pemrogram: Java telah berkembang sesuai dan dimulai.


2. Jawa 2

Lompatan besar pertama terjadi dengan dirilisnya JDK 1.2. Ada begitu banyak inovasi di sana sehingga pembuat Java menamainya Java 2 Platform Standard Edition atau singkatnya J2SE 1.2.

Inovasi utama adalah:

  • strictfpkata kunci
  • Pustaka Swing untuk bekerja dengan grafik
  • Kompiler JIT, yang mempercepat eksekusi program Java
  • Satu set besar koleksi
  • Dukungan Unicode penuh: Jepang, Cina, dan Korea.

Saat ini, inovasi ini tampaknya tidak terlalu besar, tetapi setiap proyek besar tumbuh dari proyek kecil. Java tidak akan sepopuler hari ini jika sekelompok kecil pemrogram tidak terus meningkatkan bahasanya 20 tahun yang lalu.


3. Jawa 5

JDK 1.5 dirilis pada September 2004. Itu juga memperkenalkan banyak inovasi, jadi mau tidak mau pantas mendapatkan nama baru: alih-alih versi 1.5, 1.6, dan 1.7, mereka memutuskan untuk menggunakan 5.0, 6.0, dan 7.0. Jadi, nama lengkap JDK 1.5 adalah Java 2 Standard Edition 5.0

Pembaruan ini mencakup hal-hal yang tanpanya pengembangan bahasa lebih lanjut tidak akan mungkin terjadi.

Anotasi . Setengah dari kerangka kerja modern utama dibangun di atas anotasi, dari Spring dan Hibernate hingga JUnit.

Generik . Obat generik telah meningkatkan kekuatan koleksi (dan banyak lagi). Kode menjadi lebih sederhana, lebih ringkas, dan lebih aman.

Autoboxing/unboxing adalah konversi otomatis antara tipe primitif dan tipe pembungkusnya. Ini membuatnya lebih mudah untuk menulis dan membaca kode, dan membuat koleksi menjadi lebih populer.

Loop sekarang menyumbang setidaknya setengah dari semua loop yang ditulis oleh programmer foreach. Dan, tentu saja, sangat diperlukan saat bekerja dengan koleksi.

Enum adalah fitur baru yang bagus . Ini memungkinkan banyak hal disederhanakan dengan indah.

Ini bukan semua inovasi: ratusan kelas baru telah ditambahkan. Yang penting adalah bahwa mereka adalah inovasi yang tepat, dan memberikan dorongan kuat lainnya untuk popularitas Java.


4.Jawa 6

Java 6 dikenang karena sejumlah besar perbaikan kecil dan pengabaian angka 2 pada namanya: bukan lagi "Java 2 Standard Edition 6.0", tetapi hanya "Java Standard Edition 6.0".

Berikut beberapa inovasi yang menarik:

Java Compiler API memungkinkan untuk memanggil compiler Java langsung dari kode. Itu berarti program Anda sekarang dapat menghasilkan teks yang mewakili kode kelas, mengompilasinya dengan memanggil metode Java Compiler API , dan kemudian segera mulai memanggil metode dari kelas yang dikompilasi. Ada seluruh bidang perkembangan di mana kemampuan ini sangat menyederhanakan kehidupan.

Menjadi mungkin untuk mengeksekusi JavaScript secara langsung di dalam program Java. Fitur ini muncul karena JavaSE 6 menyertakan mesin Rhino JavaScript.


5. Jawa 7

Java 7 dirilis pada Juli 2011. Seharusnya ada banyak perbaikan di dalamnya, tetapi programmer hanya berhasil menambahkan sebagian kecil dari yang direncanakan. Secara khusus, mereka menambahkan hal-hal seperti:

Pustaka baru untuk bekerja dengan masukan dan keluaran data. Dikenal sebagai New Input Output API , terletak di dalam java.niopaket.

Inferensi tipe otomatis kompiler Java pada waktu kompilasi memungkinkan pemrogram menulis lebih sedikit kode. Kompiler menjadi lebih pintar, dan itu baru permulaan.

Pernyataan switch memperoleh kemampuan untuk menggunakan string sebagai nilai kasus.

Manajemen sumber daya otomatis juga meningkat secara signifikan: Dengan try-with-resourceskonstruksi, program Java dapat menutup aliran data untuk Anda saat tidak lagi diperlukan.

Ada banyak perubahan lain, tetapi itu tidak begitu penting pada tahap pembelajaran Java kita saat ini.


6. Jawa 8

Java 8 keluar pada Maret 2014 dan merupakan pembaruan terbaru terkuat Java.

Yang terpenting, pemrogram mengingatnya karena penambahan ekspresi lambda dan antarmuka fungsional (anotasi @FunctionalInterface). Kami akan memeriksanya di Level 21. Kode Anda tidak akan pernah sama lagi.

Aliran juga ditambahkan untuk koleksi, yang dikombinasikan dengan ekspresi lambda, memungkinkan untuk menulis kode dengan lebih kompak. Meskipun tidak selalu jauh lebih mudah dibaca.

Menarik.

Dan perubahan besar ketiga adalah pengenalan API baru untuk bekerja dengan tanggal dan waktu di Java 8 — Date Time API . Kami akan mempelajarinya dalam waktu dekat.


7.Jawa 9

Java 9 dirilis pada September 2017. Sejak saat itu, pencipta Java telah memutuskan untuk lebih sering merilis versi baru — setiap enam bulan. Mereka mungkin terkesan dengan pendekatan yang diadopsi oleh pengembang browser Google Chrome.

Rilis Java 9 lebih fokus pada internal mesin Java. Hal terpenting yang dibawanya ke pemrogram biasa adalah kemampuan untuk membagi program menjadi modul. Ini sangat nyaman ketika Anda memiliki puluhan ribu kelas atau ketika kode Anda secara dinamis membongkar plugin.

Tapi itu mungkin tidak akan banyak berguna bagi kita dalam waktu dekat.


8. Jawa 11

Enam bulan setelah rilis Java 9, Java 10 keluar, dan enam bulan kemudian, Java 11 keluar.

Banyak peningkatan kecil yang dilakukan selama ini, tetapi kemungkinan besar Anda hanya akan mengingat dua:

Itu menambahkan dukungan untuk Unicode 10. Sekarang Anda dapat menggunakan emoji di program Java Anda. Anda dapat bekerja dengan mereka dengan cara yang sama seperti Anda bekerja dengan tipe boolean:

Jenis inferensi ditingkatkan, dan varkata kunci , yang pasti Anda sukai, muncul.

Sekarang Anda dapat menulis yang berikut ini:

var str = "Hello";

Dan kompiler mengubahnya menjadi:

String str = "Hello";

Tapi ada juga beberapa kerugian. Pencipta Java menjatuhkan perpustakaan seperti JavaFX, Java EE, dan CORBA dari JDK 11.


9. Pentingnya kompatibilitas

Ketika versi baru dirilis, programmer sering kali ingin memulai dari awal. Lagi pula, siapa yang ingin memperbaiki banyak bug lama ketika mereka benar-benar yakin bagaimana kode seharusnya ditulis sejak awal?

Tetapi sejarah tidak mendukung pendekatan seperti itu. Setiap kali pemrogram merilis versi baru suatu program, 90% penggunanya menggunakan versi lama. Mereka dapat menggunakan atau mengabaikan fitur baru program, tetapi yang dibenci pengguna adalah ketika sesuatu yang biasanya berfungsi dengan baik berhenti bekerja.

Banyak produk hebat yang mati ketika pemrogram merilis versi baru yang tidak kompatibel. Atau hanya ketika mereka membuat perubahan besar. Misalnya, gagasan untuk mengabaikan tombol Mulai di Windows 8 tidak menarik bagi pengguna. Rilis Windows 10 mengembalikan setengah dari apa yang telah dihapus di Window 8.

Terlebih lagi, Windows memungkinkan Anda menjalankan program yang ditulis 20 tahun yang lalu untuk Windows 95 atau bahkan yang ditulis 30 tahun yang lalu untuk MS DOS 3.0 — mereka akan bekerja. Inilah salah satu alasan mengapa Windows tetap populer.

Dan Java tidak akan sepopuler itu jika pengembangnya tidak peduli dengan kompatibilitas. Setiap kali ada versi baru mesin Java, versi baru SDK, atau perubahan besar pada kelas, semua kode Java yang ditulis sejak Januari 1996 terus berfungsi.

Ini biasanya dicapai dengan hanya menambahkan metode, kelas, dan paket baru, tanpa menghapus apa pun. Pendekatan ini memiliki pro dan kontra.

Di satu sisi, Java menyeret sekumpulan bagasi dalam bentuk kode lama, suboptimal, dan tidak perlu. Di sisi lain, proyek Anda yang ditulis dalam Java 11 selalu dapat menggunakan pustaka yang ditulis dalam Java 8 yang menggunakan pustaka yang ditulis dalam Java 5 dan Java 2. Kode gado-gado ini akan berfungsi dengan baik.

Dengan bahasa C++, pustaka yang dikompilasi untuk platform 32-bit dan 64-bit tidak dapat digunakan dalam proyek yang sama. Dan Anda akan sangat pusing jika tiba-tiba menemukan bahwa chartipe yang digunakan di satu perpustakaan menggunakan satu byte, sementara yang lain menggunakan dua byte.


10. Tidak digunakan lagi

Jadi, pembuat Java memutuskan untuk tidak menghapus apa pun, tetapi hanya menambahkan kelas dan paket baru. Tapi bagaimana mereka memberi tahu pemrogram bahwa ada alternatif baru yang layak untuk solusi suboptimal yang ada?

Untuk melakukan ini, mereka membuat anotasi @Deprecated.

Jika beberapa metode atau kelas tidak digunakan lagi, anotasi ini ditambahkan di samping deklarasinya. Ini berarti programmer dilarang menggunakan kode.

Anda masih dapat menggunakan kelas atau metode yang tidak digunakan lagi, tetapi tidak disarankan.

Dan seberapa sering orang melakukan hal yang tidak dianjurkan? Hampir selalu 🙂

Banyak kelas tidak digunakan lagi selama 20 tahun — kelas tersebut telah digunakan dan masih digunakan. Orang-orang akrab dengan mereka atau mereka hanya nyaman. Tetapi ada risiko bahwa mereka akan dihapus di beberapa titik, jadi lebih baik tidak menggunakannya.

Semua IDE modern, termasuk IntelliJ IDEA, dapat menangani @Deprecatedanotasi. Nama kelas dan metode yang tidak digunakan lagi ditampilkan menggunakan pemformatan coretan . Sesuatu seperti ini:

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

Kelas yang tidak digunakan lagi sangat populer dan sering ditemukan dalam kode, jadi kita akan segera melihat beberapa di antaranya.