Perjalanan Java Melalui Masa
Java telah wujud selama lebih dua dekad, menjanakan aplikasi yang mantap merentas industri. Ia secara konsisten disenaraikan sebagai salah satu bahasa pengaturcaraan yang paling popular untuk membina aplikasi gred perusahaan. Dengan keluaran Java 23 dan penamatan sokongan untuk Java 11, pembangunan moden kini memerlukan Java 17 sebagai garis dasar atau versi yang lebih baharu.
Antara Java 17 dan 23, banyak yang telah berkembang. Jadi, apa yang berubah? Kami akan menerokai perjalanan yang telah dilalui Java untuk mencapai tahap kematangan ini.
Artikel ini menyelidiki evolusi Java, sejarah versinya dan kemas kini terkini. Jika anda ingin tahu tentang ciri terbaharu dalam Java dan cara ciri tersebut membentuk masa depan pembangunan, teruskan membaca.
Istilah Biasa Digunakan dalam Versi Java
1. JVM (Mesin Maya Java)
JVM bergantung pada platform dan melaksanakan bytecode yang dijana oleh pengkompil Java. Ia menyediakan persekitaran masa jalan untuk aplikasi dilaksanakan. JVM menguruskan memori, daftar dan timbunan kutipan sampah.
2. JRE (Java Runtime Environment)
JRE menyediakan persekitaran untuk menjalankan program Java. Ia termasuk perpustakaan kelas JVM dan Java. Pada asasnya, ia adalah pakej alatan yang diperlukan untuk melaksanakan kod Java.
3. JDK (Kit Pembangunan Java)
JDK ialah kit alat lengkap untuk membangunkan aplikasi Java. Ia termasuk JRE, penyusun, penyahpepijat dan alatan seperti Javadoc. Ia membolehkan pembangun mencipta, menyusun dan menjalankan kod Java. Memandangkan menjalankan program Java adalah sebahagian daripada pembangunan, JDK memerlukan JRE.
4. Bytecode
Bytecode ialah kod perantaraan yang dijana oleh pengkompil Java (disimpan dalam fail .class). Dengan bantuan JVM, fail .class ini boleh dijalankan pada mana-mana sistem, menjadikan Java bebas platform.
Java 1.0
Java memasuki tempat kejadian dengan janji yang mengubah landskap perisian selama-lamanya—Tulis Sekali, Jalankan Di Mana-mana. Ia memperkenalkan Mesin Maya Java (JVM), membenarkan pembangun menulis kod yang boleh dijalankan pada mana-mana peranti dengan JVM, tanpa mengira perkakasan asas. Pengurusan memori telah diautomasikan, menjadikan kehidupan pembangun lebih mudah. Tiada penangguhan besar—ini hanyalah permulaan bagi semuanya.
Java 1.1
Java 1.1 mula membina asasnya, menambah kelas dalaman dan pendengar acara. Ciri ini menjadikan aplikasi Java lebih dinamik dan interaktif, menambah baik cara pembangun boleh menstruktur dan mengurus kod mereka.
Java 1.2
Java 1.2 adalah tempat perkara mula menjadi menarik. Ia memperkenalkan Rangka Kerja Koleksi, Swing (untuk GUI yang lebih baik), dan pengkompil JIT, yang menjadikan prestasi lebih pantas. Versi ini menjadikan Java lebih berkemampuan untuk mengendalikan aplikasi yang kompleks, terutamanya dengan pengenalan Platform Java 2 (J2EE) untuk aplikasi perusahaan.
Java 1.3
Java 1.3 memfokuskan pada prestasi, terima kasih kepada JVM HotSpot. Penambahan Platform Java 2, Edisi Perusahaan (J2EE) membuka pintu untuk membina lebih banyak aplikasi perusahaan berskala. Walaupun tiada sebarang ciri terobosan, ia menetapkan peringkat untuk evolusi pantas yang akan datang.
Java 1.4
Versi ini menyaksikan pengenalan ungkapan biasa untuk pemadanan corak teks yang lebih mudah, NIO (I/O Baharu) untuk prestasi I/O yang dipertingkatkan dan Java Web Start, yang membenarkan pengguna melancarkan aplikasi terus daripada pelayar web. Walau bagaimanapun, applet perlahan-lahan kehilangan kaitan dan mula ditamatkan untuk memihak kepada teknologi web yang lebih moden.
Jawa 5
Java 5 (juga dikenali sebagai 1.5) adalah salah satu kemas kini paling penting dalam sejarah Java. Ia memperkenalkan generik, anotasi dan jenis terbilang, menjadikan kod Java lebih selamat dan lebih cekap. Ia juga memperkenalkan gelung untuk yang dipertingkatkan, yang memudahkan lelaran ke atas koleksi. Ia merupakan anjakan besar—sangat besar, ia hampir dinamakan Java 1.5 sebaliknya.
Jawa 6
Java 6 banyak menumpukan pada peningkatan prestasi, termasuk peningkatan pada Java Compiler API dan Java Virtual Machine. Ia juga membawa masuk ciri untuk penyepaduan perkhidmatan web yang lebih mudah. Java menjadi lebih berkuasa, tetapi tiada penamatan besar berlaku—Java 6 adalah mengenai memperhalusi perkara yang telah wujud.
Jawa 7
Dengan Java 7, bahasa ini menjadi lebih mesra pembangun. Ciri seperti cuba-dengan-sumber dan pengendali berlian menjadikan pengekodan lebih bersih. Rangka kerja Fork/Join diperkenalkan untuk pemprosesan selari yang lebih baik. Walau bagaimanapun, applet telah ditamatkan secara rasmi, menandakan peralihan daripada penggunaan Java dalam penyemak imbas.
Jawa 8
Java 8 dianggap sebagai salah satu kemas kini paling penting yang pernah ada, dengan ungkapan dan aliran lambda yang membawa konsep pengaturcaraan berfungsi kepada bahasa. Ini menjadikan Java lebih ringkas dan ekspresif. API Tarikh/Masa baharu menggantikan kelas Tarikh yang lapuk, dan kaedah lalai dalam antara muka membenarkan kod yang lebih fleksibel. Namun, Applet telah dialih keluar secara rasmi, kerana ia tidak lagi relevan.
Jawa 9
Dengan Java 9, modulariti adalah tumpuan besar. Pengenalan Projek Jigsaw membolehkan pembangun memecahkan aplikasi kepada modul yang lebih kecil dan lebih mudah diurus, meningkatkan kebolehskalaan. JShell, REPL interaktif, membenarkan ujian dan percubaan yang lebih pantas. Keluaran ini juga menyaksikan penamatan beberapa modul Java EE warisan apabila peralihan kepada rangka kerja web moden berlaku.
Jawa 10
Java 10 membawa inferens jenis pembolehubah tempatan (var), menjadikannya lebih mudah untuk mengisytiharkan pembolehubah tanpa menyatakan jenisnya secara eksplisit. Pengumpul sampah G1 menerima penambahbaikan untuk prestasi yang lebih baik. Tiada penangguhan yang besar, hanya dorongan berterusan ke arah Java yang lebih cekap dan fleksibel.
Jawa 11
Java 11 ialah keluaran LTS (Sokongan Jangka Panjang) pertama sejak Java 8, menjadikannya versi kritikal untuk perusahaan yang mencari kestabilan. Ia memperkenalkan API Klien HTTP untuk komunikasi web yang lebih baik dan menandakan penyingkiran modul Java EE dan CORBA, yang telah menjadi lapuk. Sebagai keluaran LTS, ia menjadi pilihan popular bagi kebanyakan pembangun yang memerlukan sokongan jangka panjang yang stabil.
Jawa 12
Java 12 memperkenalkan ciri seperti JVM Constants API dan pengumpul sampah Shenandoah eksperimen, yang direka untuk mengurangkan masa jeda. Ia juga menafikan mekanisme Pengaktifan RMI, kerana aplikasi moden tidak lagi memerlukannya. Perubahan ini menjadikan Java lebih berprestasi dan berskala.
Jawa 13
Java 13 menjadikan kerja dengan rentetan lebih mudah dengan memperkenalkan blok teks untuk rentetan berbilang baris. Versi ini juga memfokuskan pada pengumpulan sampah yang lebih baik dan pengoptimuman prestasi. Tiada penangguhan besar dalam keluaran ini, cuma penambahbaikan berterusan.
Jawa 14
Java 14 membawa rekod (ciri untuk kelas data tidak berubah), padanan corak untuk instanceof, dan peningkatan dalam pengurusan memori. ZGC (Z Garbage Collector) turut diperkenalkan dalam bentuk eksperimen. Penamatan utama di sini ialah enjin JavaScript Nashorn, kerana lebih banyak enjin JavaScript moden telah diterima pakai.
Jawa 15
Java 15 memperkenalkan kelas tertutup, yang mengehadkan jenis yang boleh melanjutkan atau melaksanakannya, membawa kawalan yang lebih besar ke atas kod anda. API akses memori asing terus berkembang, menawarkan cara baharu untuk berinteraksi dengan memori di luar JVM. API Pengaktifan RMI telah ditamatkan secara rasmi.
Jawa 16
Dengan Java 16, padanan corak untuk instanceof menjadi lebih matang, dan ciri Rekod telah diperkenalkan sepenuhnya. API Fungsi & Memori Asing terus berkembang, menjadikan Java lebih sesuai untuk penyepaduan asli. Java 16 lebih kepada mengukuhkan ciri dan bukannya memperkenalkan sebarang penamatan utama.
Jawa 17
Java 17, keluaran LTS, membawa antara muka tertutup dan kaedah pengumpulan sampah yang lebih baik seperti ZGC dan Shenandoah. Ia juga merangkum dalaman JDK dengan kuat untuk keselamatan yang lebih baik. Terdapat juga penamatan beberapa penyedia keselamatan lama, menandakan peralihan ke arah API yang lebih moden dan selamat.
Jawa 18
Java 18 memfokuskan pada meningkatkan pengendalian memori dan Fungsi Asing & API Memori untuk berinteraksi dengan lebih baik dengan kod asli. Ia juga menjadikan UTF-8 set aksara lalai, menjajarkan Java dengan piawaian pengantarabangsaan moden. Versi ini lebih kepada penambahbaikan dalaman dan bukannya perubahan yang boleh dilihat secara luaran.
Jawa 19
Java 19 mula meneroka Project Loom (konkurensi ringan) dan terus memperhalusi padanan corak. API akses memori asing telah digilap lagi, dan jenis nilai mula memasuki bahasa tersebut. Ini adalah langkah ke arah memodenkan Java untuk aplikasi yang kompleks dan berprestasi tinggi.
Jawa 20
Java 20 memperhalusi lagi Project Loom dan padanan corak, dengan sokongan yang dipertingkatkan untuk jenis nilai dan model konkurensi baharu. Akses memori asing terus berkembang, menjadikan Java lebih cekap dalam mengendalikan kod asli dan meningkatkan prestasi untuk aplikasi yang memerlukan sumber.
Java 21 LTS
Java 21, keluaran LTS yang lain, penambahbaikan berterusan dalam Project Loom, corak rekod dan kebolehskalaan. Ia juga memperkenalkan pengurusan memori yang lebih baik dan memuktamadkan beberapa ciri terdahulu. Penamatan model konkurensi warisan tertentu menandakan langkah terakhir dalam mendorong Java ke arah paradigma yang lebih moden.
Jawa 22
Java 22 adalah tentang pembuktian masa hadapan bahasa dengan sokongan muktamad untuk Project Loom dan penambahbaikan berterusan dalam kesesuaian. Padanan corak menjadi lebih halus dan alat baharu untuk aplikasi berskala muncul. Java kini lebih berkebolehan berbanding sebelum ini untuk mengendalikan sistem kompleks berprestasi tinggi.
Jawa 23
Keluaran terbaharu, Java 23, mengembangkan padanan corak dan meningkatkan pengurusan memori asli dengan API Fungsi & Memori Asing. Ini menjadikan Java lebih berkuasa untuk aplikasi moden yang berinteraksi dengan sumber sistem peringkat rendah. Java 23 adalah mengenai kebolehskalaan, prestasi dan produktiviti pembangun, memastikan Java kekal relevan untuk tahun-tahun akan datang.
Versi Mana Yang Perlu Anda Gunakan?
Untuk pemula, bermula dengan versi LTS terkini seperti Java 17 atau 21 secara amnya adalah idea yang bagus. Versi ini disokong dengan baik dan mempunyai semua ciri terkini. Jadi, begitulah. Pandangan mesra pemula pada evolusi Java. Jangan terpengaruh dengan angka. Ingatlah bahawa setiap versi dibina berdasarkan versi sebelumnya, menjadikan Java bahasa yang lebih berkuasa dan serba boleh. Selamat mengekod.
Atas ialah kandungan terperinci Apa yang Berubah dalam Versi Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Perbezaan antara hashmap dan hashtable terutamanya dicerminkan dalam keselamatan benang, sokongan nilai null dan prestasi. 1. Dari segi keselamatan benang, hashtable adalah benang selamat, dan kaedahnya kebanyakannya kaedah segerak, sementara hashmap tidak melakukan pemprosesan penyegerakan, yang bukan benang-selamat; 2. Dari segi sokongan nilai null, hashmap membolehkan satu kunci null dan nilai null berbilang, manakala hashtable tidak membenarkan kekunci atau nilai null, jika tidak, nullPointerException akan dibuang; 3. Dari segi prestasi, hashmap lebih cekap kerana tidak ada mekanisme penyegerakan, dan Hashtable mempunyai prestasi penguncian yang rendah untuk setiap operasi. Adalah disyorkan untuk menggunakan ConcurrentHashMap sebaliknya.

Java menggunakan kelas pembalut kerana jenis data asas tidak dapat mengambil bahagian secara langsung dalam operasi berorientasikan objek, dan bentuk objek sering diperlukan dalam keperluan sebenar; 1. Kelas koleksi hanya boleh menyimpan objek, seperti senarai menggunakan tinju automatik untuk menyimpan nilai berangka; 2. Generik tidak menyokong jenis asas, dan kelas pembungkusan mesti digunakan sebagai parameter jenis; 3. Kelas pembungkusan boleh mewakili nilai null untuk membezakan data yang tidak tersendiri atau hilang; 4. Kelas pembungkusan menyediakan kaedah praktikal seperti penukaran rentetan untuk memudahkan parsing dan pemprosesan data, jadi dalam senario di mana ciri -ciri ini diperlukan, kelas pembungkusan sangat diperlukan.

Staticmethodsininterfaceswereintroducedinjava8toallowutilityfunctionswithintheintheinterfaceitself.beforjava8, SuchfunctionsRequiredseparateHelpereHelperes, LeadingTodisorgaganizedCode.Now, staticmethodethreeKeybeeMeKeBeReSes, staticmethodeDethreeKeybeeMeKeBeReSes, staticmethodethreeKeybeeMeKeKeBeReSes, staticmethodeDethreeKeybeeMeKeKeBeReKeNey

Penyusun JIT mengoptimumkan kod melalui empat kaedah: kaedah dalam talian, pengesanan tempat panas dan penyusunan, spekulasi jenis dan devirtualisasi, dan penghapusan operasi yang berlebihan. 1. Kaedah sebaris mengurangkan panggilan overhead dan memasukkan kaedah kecil yang sering dipanggil terus ke dalam panggilan; 2. Pengesanan tempat panas dan pelaksanaan kod frekuensi tinggi dan mengoptimumkannya untuk menjimatkan sumber; 3. Jenis spekulasi mengumpul maklumat jenis runtime untuk mencapai panggilan devirtualisasi, meningkatkan kecekapan; 4. Operasi berlebihan menghapuskan pengiraan dan pemeriksaan yang tidak berguna berdasarkan penghapusan data operasi, meningkatkan prestasi.

Blok permulaan contoh digunakan dalam Java untuk menjalankan logik inisialisasi apabila membuat objek, yang dilaksanakan sebelum pembina. Ia sesuai untuk senario di mana beberapa pembina berkongsi kod inisialisasi, permulaan medan kompleks, atau senario permulaan kelas tanpa nama. Tidak seperti blok inisialisasi statik, ia dilaksanakan setiap kali ia ditegaskan, manakala blok permulaan statik hanya dijalankan sekali apabila kelas dimuatkan.

Injava, thefinalkeywordpreventsavariable'svaluefrombeingchangedafterassignment, butitsbehaviordiffersforprimitivesandobjectreferences.forprimitiveVariables, finalmakesthevalueconstant, asinfinalintmax_speed = 100;

Mod kilang digunakan untuk merangkum logik penciptaan objek, menjadikan kod lebih fleksibel, mudah dikekalkan, dan ditambah longgar. Jawapan teras adalah: dengan mengurus logik penciptaan objek secara berpusat, menyembunyikan butiran pelaksanaan, dan menyokong penciptaan pelbagai objek yang berkaitan. Keterangan khusus adalah seperti berikut: Mod Kilang menyerahkan penciptaan objek ke kelas kilang khas atau kaedah untuk diproses, mengelakkan penggunaan Newclass () secara langsung; Ia sesuai untuk senario di mana pelbagai jenis objek yang berkaitan dicipta, logik penciptaan boleh berubah, dan butiran pelaksanaan perlu disembunyikan; Sebagai contoh, dalam pemproses pembayaran, jalur, paypal dan contoh lain dicipta melalui kilang -kilang; Pelaksanaannya termasuk objek yang dikembalikan oleh kelas kilang berdasarkan parameter input, dan semua objek menyedari antara muka yang sama; Varian biasa termasuk kilang -kilang mudah, kaedah kilang dan kilang abstrak, yang sesuai untuk kerumitan yang berbeza.

Terdapat dua jenis penukaran: tersirat dan eksplisit. 1. Penukaran tersirat berlaku secara automatik, seperti menukar int untuk berganda; 2. Penukaran eksplisit memerlukan operasi manual, seperti menggunakan (int) mydouble. Kes di mana penukaran jenis diperlukan termasuk memproses input pengguna, operasi matematik, atau lulus pelbagai jenis nilai antara fungsi. Isu-isu yang perlu diperhatikan adalah: Mengubah nombor terapung ke dalam bilangan bulat akan memotong bahagian pecahan, mengubah jenis besar menjadi jenis kecil boleh menyebabkan kehilangan data, dan beberapa bahasa tidak membenarkan penukaran langsung jenis tertentu. Pemahaman yang betul tentang peraturan penukaran bahasa membantu mengelakkan kesilapan.
