JDK9-20 版本功能点

91 阅读5分钟
  • openjdk.org/projects/jd…
    • 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
    • 291: Deprecate the Concurrent Mark Sweep (CMS) Garbage Collector
    • 292: Implement Selected ECMAScript 6 Features in Nashorn
    • 294: Linux/s390x Port
    • 295: Ahead-of-Time Compilation
    • 297: Unified arm32/arm64 Port
    • 298: Remove Demos and Samples
    • 299: Reorganize Documentation
  • openjdk.org/projects/jd…
    • 286: Local-Variable Type Inference
    • 296: Consolidate the JDK Forest into a Single Repository
    • 304: Garbage-Collector Interface
    • 307: Parallel Full GC for G1
    • 310: Application Class-Data Sharing
    • 312: Thread-Local Handshakes
    • 313: Remove the Native-Header Generation Tool (javah)
    • 314: Additional Unicode Language-Tag Extensions
    • 316: Heap Allocation on Alternative Memory Devices
    • 317: Experimental Java-Based JIT Compiler
    • 319: Root Certificates
    • 322: Time-Based Release Versioning
  • openjdk.org/projects/jd…
    • 181: Nest-Based Access Control
    • 309: Dynamic Class-File Constants
    • 315: Improve Aarch64 Intrinsics
    • 318: Epsilon: A No-Op Garbage Collector
    • 320: Remove the Java EE and CORBA Modules
    • 321: HTTP Client (Standard)
    • 323: Local-Variable Syntax for Lambda Parameters
    • 324: Key Agreement with Curve25519 and Curve448
    • 327: Unicode 10
    • 328: Flight Recorder
    • 329: ChaCha20 and Poly1305 Cryptographic Algorithms
    • 330: Launch Single-File Source-Code Programs
    • 331: Low-Overhead Heap Profiling
    • 332: Transport Layer Security (TLS) 1.3
    • 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)
    • 335: Deprecate the Nashorn JavaScript Engine
    • 336: Deprecate the Pack200 Tools and API
  • openjdk.org/projects/jd…
    • 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
    • 230: Microbenchmark Suite
    • 325: Switch Expressions (Preview)
    • 334: JVM Constants API
    • 340: One AArch64 Port, Not Two
    • 341: Default CDS Archives
    • 344: Abortable Mixed Collections for G1
    • 346: Promptly Return Unused Committed Memory from G1
  • openjdk.org/projects/jd…
    • 350: Dynamic CDS Archives
    • 351: ZGC: Uncommit Unused Memory
    • 353: Reimplement the Legacy Socket API
    • 354: Switch Expressions (Preview)
    • 355: Text Blocks (Preview)
  • openjdk.org/projects/jd…
    • 305: Pattern Matching for instanceof (Preview)
    • 343: Packaging Tool (Incubator)
    • 345: NUMA-Aware Memory Allocation for G1
    • 349: JFR Event Streaming
    • 352: Non-Volatile Mapped Byte Buffers
    • 358: Helpful NullPointerExceptions
    • 359: Records (Preview)
    • 361: Switch Expressions (Standard)
    • 362: Deprecate the Solaris and SPARC Ports
    • 363: Remove the Concurrent Mark Sweep (CMS) Garbage Collector
    • 364: ZGC on macOS
    • 365: ZGC on Windows
    • 366: Deprecate the ParallelScavenge + SerialOld GC Combination
    • 367: Remove the Pack200 Tools and API
    • 368: Text Blocks (Second Preview)
    • 370: Foreign-Memory Access API (Incubator)
  • openjdk.org/projects/jd…
    • 339: Edwards-Curve Digital Signature Algorithm (EdDSA)
    • 360: Sealed Classes (Preview)
    • 371: Hidden Classes
    • 372: Remove the Nashorn JavaScript Engine
    • 373: Reimplement the Legacy DatagramSocket API
    • 374: Disable and Deprecate Biased Locking
    • 375: Pattern Matching for instanceof (Second Preview)
    • 377: ZGC: A Scalable Low-Latency Garbage Collector
    • 378: Text Blocks
    • 379: Shenandoah: A Low-Pause-Time Garbage Collector
    • 381: Remove the Solaris and SPARC Ports
    • 383: Foreign-Memory Access API (Second Incubator)
    • 384: Records (Second Preview)
    • 385: Deprecate RMI Activation for Removal
  • openjdk.org/projects/jd…
    • 338: Vector API (Incubator)
    • 347: Enable C++14 Language Features
    • 357: Migrate from Mercurial to Git
    • 369: Migrate to GitHub
    • 376: ZGC: Concurrent Thread-Stack Processing
    • 380: Unix-Domain Socket Channels
    • 386: Alpine Linux Port
    • 387: Elastic Metaspace
    • 388: Windows/AArch64 Port
    • 389: Foreign Linker API (Incubator)
    • 390: Warnings for Value-Based Classes
    • 392: Packaging Tool
    • 393: Foreign-Memory Access API (Third Incubator)
    • 394: Pattern Matching for instanceof
    • 395: Records
    • 396: Strongly Encapsulate JDK Internals by Default
    • 397: Sealed Classes (Second Preview)
  • openjdk.org/projects/jd…
    • 306: Restore Always-Strict Floating-Point Semantics
    • 356: Enhanced Pseudo-Random Number Generators
    • 382: New macOS Rendering Pipeline
    • 391: macOS/AArch64 Port
    • 398: Deprecate the Applet API for Removal
    • 403: Strongly Encapsulate JDK Internals
    • 406: Pattern Matching for switch (Preview)
    • 407: Remove RMI Activation
    • 409: Sealed Classes
    • 410: Remove the Experimental AOT and JIT Compiler
    • 411: Deprecate the Security Manager for Removal
    • 412: Foreign Function & Memory API (Incubator)
    • 414: Vector API (Second Incubator)
    • 415: Context-Specific Deserialization Filters
  • openjdk.org/projects/jd…
    • 400: UTF-8 by Default
    • 408: Simple Web Server
    • 413: Code Snippets in Java API Documentation
    • 416: Reimplement Core Reflection with Method Handles
    • 417: Vector API (Third Incubator)
    • 418: Internet-Address Resolution SPI
    • 419: Foreign Function & Memory API (Second Incubator)
    • 420: Pattern Matching for switch (Second Preview)
    • 421: Deprecate Finalization for Removal
  • openjdk.org/projects/jd…
    • 405: Record Patterns (Preview)
    • 422: Linux/RISC-V Port
    • 424: Foreign Function & Memory API (Preview)
    • 425: Virtual Threads (Preview)
    • 426: Vector API (Fourth Incubator)
    • 427: Pattern Matching for switch (Third Preview)
    • 428: Structured Concurrency (Incubator)
  • openjdk.org/projects/jd…
    • 429: Scoped Values (Incubator)
    • 432: Record Patterns (Second Preview)
    • 433: Pattern Matching for switch (Fourth Preview)
    • 434: Foreign Function & Memory API (Second Preview)
    • 436: Virtual Threads (Second Preview)
    • 437: Structured Concurrency (Second Incubator)
    • 438: Vector API (Fifth Incubator)