Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Khác biệt giữa Java 8 và Java 9

Java 9 giới thiệu nhiều tính năng mới: JShell, Http/2 Client, JPMS (Module System), Multi-release JAR, Stack Walking API, Private interface methods, Process API updates, Collection/Stream API improvements...

So sánh kiến trúc thành phần cao nhất

Java 8: Package là top-level

Packages
    - Types (classes, enums, interfaces...)
    - Code
    - Data
    - Resources (xml, images, properties...)

Java 9: Module là top-level

Modules (Resources, Module Descriptor)
    - Packages
        - Types (classes, enums, interfaces...)
        - Code
        - Data
        - Resources (xml, images, properties...)

Bảng so sánh chi tiết

Đặc điểmJava 8Java 9
Top-level componentPackageModule
Module DescriptorKhông cómodule-info.java
EncapsulationPackage-private / publicStrong encapsulation (exports/opens)
DependencyClasspath (jar hell)Module-path (explicit requires)
JREMonolithic (~200MB)Modular, custom JRE via JLink
Internal API accessCho phép (sun.misc...)Chặn mặc định, cần opens/exports
REPLKhông cóJShell
HTTP ClientHttpURLConnection (HTTP/1.1)HttpClient (HTTP/2, async)
Stack TraceThread.getStackTrace()StackWalker API (lazy, filter)
Collection FactoryKhông cóList.of(), Set.of(), Map.of()
Stream APICơ bảntakeWhile, dropWhile, iterate, ofNullable
OptionalCơ bảnstream(), ifPresentOrElse, or()
Process APIProcessBuilder cơ bảnProcessHandle, pid, children, destroy
Varargs + GenericsCảnh báo unchecked@SafeVarargs trên private method

Kết luận

Java 9 là bước ngoặt lớn: Modularity (JPMS) thay đổi cách tổ chức, build, deploy ứng dụng. Các API mới (JShell, HttpClient, StackWalker, ProcessHandle) nâng cao năng suất developer và hiệu năng runtime.