January 11, 2017

A Glance to Java 9

Java SE 9 အကြောင်း အတော်လေးပြောလာကြပြီ။ ဘာပဲပြောပြော ၂၀၁၇ နှစ်ထဲမှာပဲ Release လုပ်ဖြစ်မှာတော့ သေချာတယ်။ Java SE 9 ရဲ့ အဓိက Feature လို့ပြောရရင်တော့ Project Jigsaw လို့ပဲ ပြောရမှာ ဖြစ်ပေမဲ့ ပြောင်းလဲမှု့တွေကတော့ အတော်လေးကိုများပါတယ်။

စမ်းသပ်မယ်ဆိုရင်တော့ JDC 9 Early Release ကို Download လုပ်လို့ရနေပါပြီ။

JDK 9 Download
https://jdk9.java.net/download/

အဓိကအားဖြင့် Language, Tools နဲ့ Library Features တွေမှာ ပြောင်းလဲမှုတွေကို တွေ့ရမှာ ဖြစ်ပါတယ်။ JDK 9 ရဲ့ Early Release လဲ Download လုပ်လို့ရပြီဖြစ်တဲ့အတွက် ဒီတစ်ခေါက်တော့ Java SE 9 မှာ ဘာတွေပြောင်းသွားမလဲဆိုတာကို လေ့လာရင်းမိတ်ဆက်သွားပါမယ်။

JEP ဆိုတာက Java Enhancement Proposal ရဲ့ အတိုကောက် အခေါ်အဝါ်ဖြစ်ပါတယ်။ Java နဲ့ ပတ်သက်တဲ့ ပြုပြင်ပြောင်းလဲမှူ့ဆိုင်ရာ အကြံပြုလွှာတွေဖြစ်ပါတယ်။ Java SE 9 မှာ ပါဝင်တဲ့ JEP တွေကတော့ အားလုံးပေါင်း ၈၈ခုရှိပါတယ်။

102: Process API Updates
110: HTTP 2 Client
143: Improve Contended Locking
158: Unified JVM Logging
165: Compiler Control
193: Variable Handles
197: Segmented Code Cache
199: Smart Java Compilation, Phase Two
200: The Modular JDK
201: Modular Source Code
211: Elide Deprecation Warnings on Import Statements
212: Resolve Lint and Doclint Warnings
213: Milling Project Coin
214: Remove GC Combinations Deprecated in JDK 8
215: Tiered Attribution for javac
216: Process Import Statements Correctly
217: Annotations Pipeline 2.0
219: Datagram Transport Layer Security (DTLS)
220: Modular Run-Time Images
221: Simplified Doclet API
222: jshell: The Java Shell (Read-Eval-Print Loop)
223: New Version-String Scheme
224: HTML5 Javadoc
225: Javadoc Search
226: UTF-8 Property Files
227: Unicode 7.0
228: Add More Diagnostic Commands
229: Create PKCS12 Keystores by Default
231: Remove Launch-Time JRE Version Selection
232: Improve Secure Application Performance
233: Generate Run-Time Compiler Tests Automatically
235: Test Class-File Attributes Generated by javac
236: Parser API for Nashorn
237: Linux/AArch64 Port
238: Multi-Release JAR Files
240: Remove the JVM TI hprof Agent
241: Remove the jhat Tool
243: Java-Level JVM Compiler Interface
244: TLS Application-Layer Protocol Negotiation Extension
245: Validate JVM Command-Line Flag Arguments
246: Leverage CPU Instructions for GHASH and RSA
247: Compile for Older Platform Versions
248: Make G1 the Default Garbage Collector
249: OCSP Stapling for TLS
250: Store Interned Strings in CDS Archives
251: Multi-Resolution Images
252: Use CLDR Locale Data by Default
253: Prepare JavaFX UI Controls & CSS APIs for Modularization
254: Compact Strings
255: Merge Selected Xerces 2.11.0 Updates into JAXP
256: BeanInfo Annotations
257: Update JavaFX/Media to Newer Version of GStreamer
258: HarfBuzz Font-Layout Engine
259: Stack-Walking API
260: Encapsulate Most Internal APIs
261: Module System
262: TIFF Image I/O
263: HiDPI Graphics on Windows and Linux
264: Platform Logging API and Service
265: Marlin Graphics Renderer
266: More Concurrency Updates
267: Unicode 8.0
268: XML Catalogs
269: Convenience Factory Methods for Collections
270: Reserved Stack Areas for Critical Sections
271: Unified GC Logging
272: Platform-Specific Desktop Features
273: DRBG-Based SecureRandom Implementations
274: Enhanced Method Handles
275: Modular Java Application Packaging
276: Dynamic Linking of Language-Defined Object Models
277: Enhanced Deprecation
278: Additional Tests for Humongous Objects in G1
279: Improve Test-Failure Troubleshooting
280: Indify String Concatenation
281: HotSpot C++ Unit-Test Framework
282: jlink: The Java Linker
283: Enable GTK 3 on Linux
284: New HotSpot Build System
285: Spin-Wait Hints
287: SHA-3 Hash Algorithms
288: Disable SHA-1 Certificates
289: Deprecate the Applet API
290: Filter Incoming Serialization Data
292: Implement Selected ECMAScript 6 Features in Nashorn
294: Linux/s390x Port
295: Ahead-of-Time Compilation
297: Unified arm32/arm64 Port

ခေါင်းစဉ်တွေကြီး ဖတ်ကြည့်ရင်တောင် Language ပိုင်းဆိုင်ရာ ပြောင်းလဲမှူ့ထက် Platform ဘက်မှာ ပိုပြီး အားသာတာကို တွေ့ရပါမယ်။ Keywords ကတော့ Modularity ပါပဲ။ jshell ကတော့ Java ကို သင်ကြားရာမှာ Statement တွေကို အလွယ်တကူသင်ကြားနိုင်မှာ ဖြစ်ပါတယ်။

နောက်တစ်ခုစိတ်ဝင်စားမိတာက HTTP2 Client ဟာလဲ​စိတ်ဝင်စားစရာ ဖြစ်ပါတယ်။ Tools နဲ့ JVM အစရှိတဲ့ Platform ပိုင်းဆိုင်ရာ ပြောင်းလဲမှု့တွေကများတာကို တွေ့ရပါတယ်။

ဆက်ပြီးလေ့လာသွားပါဦးမယ်။
လေးစားစွာဖြင့်
မင်းလွင်

2 comments: