/java

Intro repo for java

Primary LanguageJavaThe UnlicenseUnlicense

java

Intro repo for java 8 - 9 - 10 - 11 - 12 - 13 - 14


General programming principles

https://github.com/dwmkerr/hacker-laws#principles

  • DRY
  • KISS
  • YAGNI

Java 8 main features

https://education.oracle.com/java-se-8-new-features/courP_4271

  • Functional interfaces and Lambda expressions
  • Method reference
  • forEach
  • default and static methods in interfaces
  • API date, time
  • Streams
  • Optional
  • CompletableFuture
  • Other general improvements about IO, concurrency and core APIs

Java 9 main features

https://www.oracle.com/java/technologies/javase/9all-relnotes.html

  • Collection Factory
  • Completable Future improvements
  • Stream improvements
  • Module System
  • Encapsulate Most Internal APIs

Java 10 main features

https://openjdk.java.net/projects/jdk/10/

  • Local-Variable Type Inference
  • Consolidate the JDK Forest into a Single Repository
  • Garbage-Collector Interface
  • Parallel Full GC for G1
  • Application Class-Data Sharing
  • Thread-Local Handshakes
  • Remove the Native-Header Generation Tool (javah)
  • Additional Unicode Language-Tag Extensions
  • Heap Allocation on Alternative Memory Devices
  • Experimental Java-Based JIT Compiler
  • Root Certificates
  • Time-Based Release Versioning

Java 11 main features

https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html

  • JEP 321 HTTP Client (Standard)
  • Lazy Allocation of Compiler Threads: -XX:+UseDynamicNumberOfCompilerThreads
  • ZGC
  • Epsilon GC
  • Introduction of "var" keyword
  • Improved Stream lib
  • Improved String class

Java 12 main features

https://www.oracle.com/java/technologies/javase/12all-relnotes.html

  • switch (preview)
  • File.mismatch
  • Compact Number Formatting
  • Teeing Collectors
  • improved String class
  • Pattern matching for instanceof (preview)

Java 13 main features

https://openjdk.java.net/projects/jdk/13/

  • Dynamic CDS Archives
  • ZGC: Uncommit Unused Memory
  • Reimplement the Legacy Socket API
  • Switch Expressions (Preview)
  • Text Blocks (Preview)

Java 14 main features

https://openjdk.java.net/projects/jdk/14/

  • Pattern Matching for instanceof (Preview)
  • Packaging Tool (Incubator)
  • NUMA-Aware Memory Allocation for G1
  • JFR Event Streaming
  • Non-Volatile Mapped Byte Buffers
  • Helpful NullPointerExceptions
  • Records (Preview)
  • Switch Expressions (Standard)
  • Deprecate the Solaris and SPARC Ports
  • Remove the Concurrent Mark Sweep (CMS) Garbage Collector
  • ZGC on macOS
  • ZGC on Windows
  • Deprecate the ParallelScavenge + SerialOld GC Combination
  • Remove the Pack200 Tools and API
  • Text Blocks (Second Preview)
  • Foreign-Memory Access API (Incubator)