Giter VIP home page Giter VIP logo

java18's Introduction

Java CI

Schedule

  • 2022/02/24 Final Release Candidate
  • 2022/03/22 General Availability

Java 18 Features

  • JEP 400: UTF-8 by Default
    • Specify UTF-8 as the default charset of the standard Java APIs. With this change, APIs that depend upon the default charset will behave consistently across all implementations, operating systems, locales, and configurations.
  • JEP 408: Simple Web Server
    • Provide a command-line tool to start a minimal web server that serves static files only. No CGI or servlet-like functionality is available. This tool will be useful for prototyping, ad-hoc coding, and testing purposes, particularly in educational contexts.
    • start om cmd with jwebserver. By default, the server runs in the foreground and binds to the loopback address and port 8000. By default, files are served from the current directory.
    • The server can also be started via code, see example SimpleWebServer.java.
  • JEP 413: Code Snippets in Java API Documentation
    • Introduce an @snippet tag for JavaDoc's Standard Doclet
    • see example MyApi.java
    • build javadoc via ./mvnw javadoc:javadoc
  • JEP 416: Reimplement Core Reflection with Method Handles
    • Reimplement java.lang.reflect.Method, Constructor, and Field on top of java.lang.invoke method handles. Making method handles the underlying mechanism for reflection will reduce the maintenance and development cost of both the java.lang.reflect and java.lang.invoke APIs.
  • JEP 417: Vector API (Third Incubator)
    • see example Scalar.java
    • update to second incubator: enhancements in response to feedback as well as performance improvements and other significant implementation enhancements.
      • Support the ARM Scalar Vector Extension (SVE) platform.
      • Improve the performance of vector operations that accept masks on architectures that support masking in hardware.
  • JEP 418: Internet-Address Resolution SPI
    • Define a service-provider interface (SPI) for host name and address resolution, so that java.net.InetAddress can make use of resolvers other than the platform's built-in resolver.
    • see example AllLocalInetAddressResolverProvider.java
  • JEP 419: Foreign Function & Memory API (Second Incubator)
    • Introduce an API by which Java programs can interoperate with code and data outside of the Java runtime. Combination of 2 APIs introduced in previous JDKs:
    • Foreign-Memory Access API (incubator in 14, 15 and 16)
    • Foreign Linker API (incubator in 16)
    • Changes since first incubator
      • Support for more carriers, such as boolean and MemoryAddress, in memory access var handles;
      • A more general dereference API, available in both the MemorySegment and MemoryAddress interfaces;
      • A simpler API to obtain downcall method handles, where passing a MethodType parameter is no longer required;
      • A simpler API to manage temporal dependencies between resource scopes; and
      • A new API to copy Java arrays to and from memory segments.
    • see example ForeignFunctionAndMemoryAPI.java
  • JEP 420: Pattern Matching for switch (Second Preview)
    • see example SwitchPatternMatching.java
    • The enhancements since the first preview are:
      • Dominance checking now forces a constant case label to appear before a guarded pattern of the same type, for readability.
      • Exhaustiveness checking of switch blocks is now more precise with sealed hierarchies where the permitted direct subclass only extends an instantiation of the (generic) sealed superclass.
  • JEP 421: Deprecate Finalization for Removal
    • Object#finalize() is deprecated since java 9, now it's also marked as forRemoval. Finalization remains enabled by default for now, but can be disabled to facilitate early testing. In a future release it will be disabled by default, and in a later release it will be removed.
Other References

java18's People

Contributors

xtermi2 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.