Java 23 telah dikeluarkan secara rasmi! Ia adalah keluaran bukan LTS (Sokongan Jangka Panjang). Walaupun ia adalah versi jangka pendek, Java 23 hadir dengan penambahbaikan yang menarik, pembetulan pepijat dan juga ciri dan pilihan yang dialih keluar yang mungkin perlu anda perhatikan.
Mari kita mendalami perkara baharu dan cara ia membina ciri daripada versi terdahulu seperti JDK 21 dan JDK 22.
Salah satu ciri yang paling dinanti-nantikan dalam JDK 23 ialah Nilai Skop (Pratonton). Ciri ini, yang juga telah dipratonton dalam kedua-dua JDK 22 dan JDK 21, memudahkan cara kaedah berkongsi data tidak boleh ubah merentas urutan dan urutan anak. Dalam versi Java sebelumnya, pengendalian data thread-local mungkin menyusahkan dan kehausan memori. Nilai skop mengubahnya dengan menawarkan alternatif yang lebih cekap dan lebih rendah.
Apakah yang berbeza dalam JDK 23? Kaedah ScopedValue.callWhere() kini menggunakan antara muka berfungsi baharu, yang memudahkan pengkompil membuat kesimpulan sama ada pengecualian yang ditandakan mungkin dilemparkan. Ini juga membawa kepada pengalihan keluar kaedah ScopedValue.getWhere(), memperkemas lagi API.
Ini adalah kesinambungan daripada penambahbaikan yang kami lihat dalam keluaran terdahulu, dan sangat menarik untuk melihat nilai skop berkembang ke arah menjadi ciri kekal.
Model konkurensi Java sentiasa berkuasa tetapi sukar untuk diurus. Masukkan Structured Concurrency (Pratonton), yang pertama kali muncul dalam JDK 21 dan kini telah mencapai pratonton ketiganya dalam JDK 23. Idea di sini adalah untuk menjadikan pengaturcaraan serentak lebih intuitif dengan mengumpulkan tugas berkaitan yang dijalankan dalam urutan yang berbeza ke dalam satu unit kerja. Ini memudahkan pengendalian ralat dan meningkatkan kebolehpercayaan proses pembatalan.
Dalam JDK 23, konkurensi berstruktur kekal dalam pratonton, tetapi ia terus menjadikan kod konkurensi lebih mudah untuk difikirkan dan kurang terdedah kepada ralat. Jika anda telah menggunakan pratonton dalam JDK 21 atau JDK 22, anda akan menghargai cara ciri ini telah matang. Ia kini lebih lengkap untuk menangani isu konkurensi biasa seperti kebocoran benang, menjadikannya lebih mudah untuk menulis kod berbilang benang yang boleh dipercayai.
Satu lagi tambahan yang dialu-alukan ialah Badan Pembina Fleksibel (Pratonton). Mula-mula dipratonton dalam JDK 22 sebagai "penyataan sebelum super()", ciri ini membenarkan pembangun menulis kod permulaan sebelum menggunakan pembina superclass. Perubahan yang kelihatan kecil ini boleh menjadikan logik pembina lebih jelas dan menghalang penciptaan objek yang tidak perlu apabila pengesahan atau logik persediaan lain gagal.
Dalam JDK 22, ciri ini diperkenalkan untuk memberikan pembangun lebih kawalan ke atas logik pembina, dan pratonton kedua dalam JDK 23 terus memperhalusi keupayaan itu. Dengan mengalihkan logik pemulaan mendahului seruan superclass, pembangun boleh mengelakkan kaedah statik tambahan yang tidak kemas dan pembina perantaraan yang sebelum ini mengacaukan pangkalan kod.
Bagi mereka yang mengajar Java atau menulis skrip pantas, Kelas dan Kaedah Contoh Tersirat yang Diisytiharkan telah menjadi pengubah permainan sejak diperkenalkan dalam JDK 21. Ciri ini membolehkan pemula menulis program Java yang dipermudahkan tanpa perlu memahami ciri bahasa yang kompleks dari awal.
Dalam JDK 23, ciri ini mendapat beberapa peningkatan tambahan. Kini, kelas yang diisytiharkan secara tersirat boleh mengimport tiga kaedah statik secara automatik untuk I/O teks mudah, dan mereka juga akan mengimport semua kelas dan antara muka peringkat tinggi awam bagi modul java.base atas permintaan. Penambahbaikan ini membantu menjadikan keluk pembelajaran lebih lancar untuk pendatang baharu.
Salah satu ciri pratonton baharu dalam JDK 23 ialah Pengisytiharan Import Modul. Ciri ini membolehkan anda mengimport semua pakej yang dieksport oleh modul dengan satu pernyataan, memudahkan penggunaan semula perpustakaan modular. Ia amat berguna untuk pemula yang tidak perlu lagi menghafal tempat pakej terletak dalam hierarki, dan ia mengurangkan kekusutan yang disebabkan oleh pelbagai jenis pengisytiharan import-atas-permintaan.
Walaupun ini adalah ciri serba baharu dalam JDK 23, ia menunjukkan janji yang hebat dalam menjadikan sistem modul Java lebih mudah diakses, terutamanya bagi mereka yang baru dalam pengaturcaraan modular.
Soyons honnêtes : écrire du JavaDoc avec HTML et les balises @ peut être pénible. Dans JDK 23, la fonctionnalité Commentaires sur la documentation Markdown (aperçu) permet aux développeurs d'écrire de la documentation sur l'API à l'aide de Markdown, ce qui facilite la création de commentaires lisibles et bien formatés.
Bien qu'il s'agisse d'une nouvelle fonctionnalité du JDK 23, c'est quelque chose qui aurait dû être ajouté il y a des années. Markdown est largement utilisé dans les communautés de développeurs, et son introduction dans JavaDoc facilitera grandement la rédaction et la maintenance de la documentation.
Si vous travaillez avec le Z Garbage Collector (ZGC) depuis son introduction dans le JDK 15, vous serez ravi de savoir que dans le JDK 23, ZGC est désormais par défaut générationnel. mode (JEP 474). Ce commutateur améliore les performances des applications en se concentrant sur la collecte fréquente d'objets de courte durée. Bien que le ZGC non générationnel soit obsolète dans cette version, c'est un signe clair que l'approche générationnelle est l'avenir du garbage collection en Java.
Si vous utilisez JDK 22 ou une version antérieure, le passage à JDK 23 devrait apporter des améliorations notables des performances sans trop d'effort de votre part.
L'API Vector, introduite dans JDK 16, permet aux développeurs d'effectuer des calculs vectoriels qui se compilent selon des instructions vectorielles optimales au moment de l'exécution. L'API continue d'évoluer et dans JDK 23, nous voyons le Huitième Incubateur. Cette API est encore en incubation, ce qui signifie qu’elle n’est pas encore une fonctionnalité finalisée, mais elle se rapproche de sa maturité.
Pour les applications critiques en termes de performances, en particulier celles traitant de grands ensembles de données, l'API Vector peut fournir des accélérations considérables. Si vous avez travaillé avec lors d'incubations précédentes (comme JDK 22), vous constaterez qu'il est encore plus stable maintenant, mais il attend toujours que les dernières pièces se mettent en place (probablement liées au projet Valhalla).
JDK 22 a introduit les Stream Gatherers (aperçu), une fonctionnalité qui ajoute de la flexibilité à l'API Stream en permettant des opérations intermédiaires personnalisées. Dans JDK 23, il est de retour pour un deuxième aperçu. Si vous aimez utiliser des flux pour traiter des données, vous apprécierez la capacité de cette fonctionnalité à transformer les pipelines de données d'une manière qui était auparavant difficile à réaliser.
Les collecteurs de flux étendent la puissance des flux, permettant aux développeurs de gérer facilement des scénarios plus complexes, en particulier lorsqu'ils travaillent avec des flux infinis ou des transformations personnalisées.
Si vous créez des outils qui manipulent des fichiers de classe Java, l'API Class-File (aperçu) du JDK 23 est faite pour vous. Introduite pour la première fois dans JDK 22, cette API fournit un moyen standard d'analyser et de générer des fichiers de classe sans avoir besoin de bibliothèques tierces comme ASM. Le deuxième aperçu du JDK 23 affine cette API, la rendant plus rationalisée et plus facile à utiliser.
Pour les développeurs d'outils, c'est un gros problème. Plus besoin de mettre à jour les bibliothèques à chaque fois que les spécifications JVM changent : Java dispose désormais d'une solution propriétaire.
Java 23 n'est peut-être pas une version LTS, mais il regorge de fonctionnalités intéressantes qui s'appuient sur ce que JDK 21 et JDK 22 ont introduit. Des valeurs étendues et de la concurrence structurée à un meilleur garbage collector et des améliorations des flux et des constructeurs, cette version fait avancer le développement Java.
Atas ialah kandungan terperinci Java Telah Tiba Apa yang Baru?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!