Java 9 : Fitur Baru dan Peningkatan Lainnya

Java 9 akhirnya dirilis, dan bagi banyak developer ini adalah berita yang sangat melegakan setelah serangkaian kemunduran terutama karena masalah terkait upaya modularisasi yang ditinggalkan di Java 8.

Oracle memang menawarkan ketersediaan awal bagi mereka yang ingin mendownload dan menguji platform baru ini, namun sekarang versi final telah tersedia.


JDK 9
JDK 9, Source : Oracle

Anda bisa mendownload Java SE Development Kit 9 disini.

Beberapa fitur dan peningkatan pada Java 9 adalah:
  1. Java 9 REPL (JShell)

  2. Oracle Corp telah memperkenalkan sebuah tool baru yang disebut JShell yang merupakan singkatan dari Java Shell dan juga dikenal sebagai REPL (Read Evaluate Print Loop).

    Tool ini digunakan untuk mengeksekusi dan menguji Java Constructs seperti class, interface, enum, objek, pernyataan-pernyataan dan sebagainya dengan sangat mudah.

  3. Factory method untuk immutable List, Set, Map dan Map.Entry 

  4. Oracle telah memperkenalkan beberapa factory method yang mudah digunakan untuk membuat objek immutable List, Set, Map, dan Map.Entry. Metode utilitas ini digunakan untuk membuat objek kosong atau tidak kosong dari Collection.

    Pada Java SE 8 dan versi sebelumnya method utilitas pada kelas Collection seperti unmodifiableXXX digunakan untuk membuat objek Collection yang immutable. Misalnya, jika  ingin membuat immutable List, bisa menggunakan metode Collections.unmodifiableList.

  5. Method private pada interface

  6. Pada Java 8, implementasi method pada Interface dapat dilakukan dengan menggunakan metode Default dan Static. Namun, method private tidak dapat dibuat di Interface.

    Untuk menghindari kode yang berlebihan dan pemakaian yang lebih banyak lagi Oracle  memperkenalkan method private pada Java SE 9 Interfaces. Jadi, memungkinkan untuk menulis method private serta private static di interfaces dengan menggunakan keyword 'private'.

    Method private ini seperti metode private class lainnya, jadi tidak ada perbedaan di antara keduanya.

  7. Sistem modul Java 9

  8. Salah satu perubahan besar atau fitur java 9 adalah Module System. Oracle Corp memperkenalkan fitur berikut sebagai bagian dari Proyek Jigsaw :

    • Modular JDK
    • Java Modular Source Code
    • Modular Run-time Images
    • Encapsulate Java Internal APIs
    • Sistem Modul Platform Java

    Sebelum versi Java SE 9, Monolithic Jars digunakan mengembangkan aplikasi berbasis Java. Namun, arsitektur ini memiliki banyak keterbatasan dan kekurangan. Untuk menghindari semua kekurangan ini, Java SE 9 hadir dengan Modul System.
  9. Peningkatan pada Proses API

  10. Java SE 9  hadir dengan beberapa perbaikan dalam Process API, yaitu dengan menambahkan beberapa class dan methode baru untuk memudahkan pengendalian dan pengelolaan proses pada OS.

    Dua bagan baru dalam Proses API tersebut adalah:

    • java.lang.ProcessHandle
    • java.lang.ProcessHandle.Info

  11. Peningkatan pada try exception handling

  12. Java SE 7 telah memperkenalkan konstruksi exception-handling yaitu Try-With-Resources untuk mengelola sumber daya secara otomatis. Tujuan utama dari pernyataan baru ini adalah "Manajemen Resources Otomatis Yang Lebih Baik".

    Java SE 9 akan memberikan beberapa perbaikan pada pernyataan ini untuk menghindari beberapa verbositas lainnya sekaligus memperbaiki tingkat readability.

  13. Peningkatan pada CompletableFuture API

  14. Pada Java SE 9, Oracle Corp  memperbaiki CompletableFuture API untuk menyelesaikan beberapa permasalahan yang ada di Java SE 8. Mereka  menambahkan beberapa delay dan timeout serta beberapa metode utilitas dan sub-classing yang lebih baik.

  15. Reactive Streams

  16. Oracle Corps juga memperkenalkan API Reactive Streams baru di Java SE 9.


    Java SE 9 Reactive Streams API adalah Publish / Subscribe Framework untuk mengimplementasikan aplikasi asynchronous, scalable dan parallel dengan sangat mudah menggunakan bahasa Java.

    Java SE 9 telah memperkenalkan API berikut ini untuk mengembangkan Stream Reaktif dalam aplikasi berbasis Java :

    • java.util.concurrent.Flow
    • java.util.concurrent.Flow.Publisher
    • java.util.concurrent.Flow.Subscriber
    • java.util.concurrent.Flow.Processor

  17. Diamond Operator Untuk Inner Class Anonymous

  18. Java SE 7 telah memperkenalkan satu fitur baru yaitu Diamond Operator untuk menghindari kode yang tidak efisien dan verbositas yang berlebihan sehingga dapat meningkatkan readability.

    Namun di Java SE 8, Oracle telah menemukan beberapa keterbatasan penggunaan operator Diamond dengan Anonymous Inner Class, mereka memperbaiki masalah itu dan akan dirilis sebagai bagian dari Java 9.

  19. Method baru pada class java.util.Optional

  20. Pada Java 9 terdapat method baru yang ditambahkan pada class java.util.Optional yaitu method stream(). Method ini akan bekerja dengan objek Optional.

  21. Peningkatan pada Stream API

  22. Di Java SE 9, Oracle telah menambahkan 4 method baru yang berguna pada interface java.util.Stream.

    Semua metode baru yang diimplementasikan adalah metode default. Dua di antara method tersebut sangat penting, yaitu dropWhile dan takeWhile.

    Method ini sangat berguna dalam menulis beberapa kode dengan gaya fungsional.

  23. Penyempurnaan pada anotasi @Deprecated

  24. Di Java SE 8 dan versi terdahulu, anotasi @Deprecated  hanyalah Marker interface tanpa method apapun dan digunakan untuk menandai Java API yang merupakan kelas, field, method, interface, constructor, enum dan lain-lain.

    Di Java SE 9, Oracle telah meningkatkan anotasi @Deprecated untuk memberikan lebih banyak informasi tentang deprecated API  dan juga menyediakan tool untuk menganalisis penggunaan aplikasi static API dari deprecated API.

    Mereka telah menambahkan dua method ke deprecated interface forRemoval.

  25. HTTP 2 Client

  26. Di Java SE 9, Oracle  merilis New HTTP 2 Client API untuk mendukung protokol HTTP / 2 dan fitur WebSocket.

     Legacy HTTP Client API memiliki banyak masalah (seperti mendukung protokol HTTP / 1.1 namun tidak mendukung protokol HTTP / 2 dan WebSocket, hanya berfungsi dalam mode Blocking dan banyak masalah kinerja lainnya.).

    Oleh karena itulah mereka mengganti API HttpURLConnection ini dengan HTTP client yang baru.

    Mereka memperkenalkan HTTP Client 2 API baru di package "java.net.http" yang mendukung protokol HTTP / 1.1 dan HTTP / 2.

    Selain itu juga HTTP 2 Client ini mendukung Synchronous (Blocking Mode) dan Asynchronous Modes sekaligus mendukung Asynchronous Mode menggunakan WebSocket API.

  27. Multi-Resolution Image API

  28. Pada Java SE 9, Oracle memperkenalkan API Multi-Resolution Image API. Interface penting dalam API ini adalah MultiResolutionImage yang terdapat dalam package java.awt.image.

    MultiResolutionImage mengenkapsulasi satu set gambar dengan tinggi dan lebar yang berbeda (resolusi yang berbeda, kemudian kita bisa melakukan query sesuai dengan kebutuhan kita.

  29. Fitur tambahan lainnya

  30. Beberapa fitur dan peningkatan lainnya adalah:

    • Peningkatan pada GC (Garbage Collector)
    • Stack-Walking API
    • Filter pada Serialization Data
    • Deprecate pada Applet API
    • Indify String Concatenation
    • Penyempurnaan pada Method Handles
    • Java Platform Logging API and Service
    • Compact Strings
    • Parser API untuk Nashorn
    • Javadoc Search
    • HTML5 Javadoc
(Sumber : journaldev.com)

Tidak ada komentar

Bahasa Java. Diberdayakan oleh Blogger.