티스토리 뷰

작년 말쯤 나온 JDK17 버전이 LTS 버전으로 나오고 또 Spring 6가 JDK17 base인걸 공지하면서 곧 JDK17이 많이 사용될것 같다. 사실 JDK8 버전 이후부터는 나오는 주기도 빨라지고 혁신적인 점이 없어서 새로운 Java version에 대한 관심도가 많이 떨어졌다. 

 

Maven 프로젝트 JDK 8 에서 JDK 11로 migration

요즘 JAVA 버전이 참 정신없이 나오고 있다. 6개월에 한번씩 버전업데이트라니... 유료화 되면서 구독형 라이센스니 뭐니 해가지고 신경써야 되는게 늘었다... 개발환경을 구성해야 하는 입장에서

oingdaddy.tistory.com

예전에 8에서 11로 migration 가이드는 작성을 한적이 있다. 이번 글은 실제 소스 migration이 아니라 11에서 17로 버전이 올라감에 따라 그간 무슨일이 있었나 정리해보는 시간을 가지려고 한다. 주목을 받았던건 볼드처리 하였다. 

 

Java 12 (2019.03 출시)

189: The experimental Shenandoah garbage collector
230: Microbenchmark suite
325: Preview for Switch statement expressions
334: Constants API for the JVM
340: Single AArch64 port instead of two
341: CDS archive defaults
344: Mixed collections for G1 that are abortable
346: Fast return of G1’s unused committed memory

 

Java 13 (2019.09 출시)

350: Dynamic CDS archives
351: ZGC: Uncommit unused garbage collector memory
353: Reimplementation of the Legacy Socket API
354: Update to the switch expressions preview
355: A preview of Java text blocks

 

Java 14 (2020.03 출시)

305: instanceof pattern matching preview
343: Incubator for the new packaging tool
345: NUMA awareness for the G1 garbage collector
349: Java Flight Recorder event streaming for Java Mission Control
352: Non-Volatile mapped byte buffers
358: Helpful NullPointerException guidance
359: A preview of the new Java data type named Records
361: Standard inclusion for switch expressions
362: Deprecation of Solaris SPARC Ports
363: Removal of Java’s Concurrent Mark Sweep (CMS) garbage collector
364: ZGC for macOS garbage collection and memory management
365: ZGC for Windows garbage collection and memory management
366: Deprecation of the combination of the SerialOld  and ParallelScavenge  GC algorithms
367: Removal of Pack200 Tools
368: A second preview of Java Text Blocks feature
370: Incubator for the Foreign-Memory Access API

 

Java 15 (2020.09 출시)

339: Addition of EdDSA (Edwards-Curve Digital Signature Algorithm)
360: Preview for sealed classes
371: Addition of hidden classes in Java
372: Removal of the Nashorn JavaScript Engine
373: Legacy DatagramSocket API reimplementation
374: Biased locking disablement and deprecation
375: Second preview for instanceof pattern matching
377: Addition of ZGC, the scalable, low-latency, garbage collector for Java
378: Full inclusion of Java Text Blocks
379: Addition and enhancements of the low-pause time Shenandoah garbage collector
381: Final remove of Solaris and SPARC Ports
383: Incubation of the Foreign-Memory Access API
384: Second preview inclusion of Java Records
385: RMI Activation deprecation with the goal of future removal

 

Java 16 (2021.03 출시)

338: Incubation of the Vector API
347: C++14 language features enablement
357: Migration from Mercurial to Git
369: GitHub migration of OpenJDK repositories
376: Concurrent thread-stack processing for ZGC
380: Unix-Domain Socket Channels
386: Alpine Linux port
387: Support for elastic metaspace
388: The Windows AArch64 Port
389: Incubation of the Foreign Linker API
390: Value-based classes warnings
392: Addition of the Packaging Tool
393: Third incubation of the Foreign-Memory Access API
394: Full inclusion of pattern matching for instanceof
395: Full implementation of Java Records
396: String encapsulation of JDK Internals
397: Second preview of sealed classes

 

Java 17 (2021.09 출시)

306: Restoration of always-strict semantics for floating-points
356: Pseudo-random number generators improvements
382: Support for a new macOS pipeline for rendering
391: The macOS AArch64 port
398: Deprecation of the infamous Applet API with the goal of full removal
403: Strong encapsulation of Java’s internals
406: Switch pattern matching preview
407: RMI Activation removal
409: Full support for sealed Java classes
410: Removal of the experimental and largely unused ahead-of-time (AOT) and just-in-time (JIT) compilers
411: Deprecation of the Security Manager with removal being the eventual goal
412: Incubation of the Foreign Function & Memory API
414: Second incubation of the Vector API
415: Context-specific deserialization filters

 

 

혁신적으로 변화한점은 없지만 11~17 버전 업데이트를 통해 성능, 구문, API 등 더 나아졌다는것을 확인할 수 있다. 

 

다음에는 실제로 썼을때 어떤 점들을 migration을 하는지에 대해서 다루도록 하겠다. 

 

끝!

 

참고 : https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/all-changes-in-Java-17-since-JDK-11-LTS-release

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31