没有合适的资源?快使用搜索试试~ 我知道了~
JDK15-migration-guide.pdf
需积分: 5 0 下载量 150 浏览量
2023-08-08
07:24:34
上传
评论
收藏 285KB PDF 举报
温馨提示
试读
34页
JDK15-migration-guide
资源推荐
资源详情
资源评论
Java Platform, Standard Edition
Oracle JDK Migration Guide
Release 15
F30923-01
September 2020
Getting Started
The purpose of this guide is to help you identify potential issues and give you
suggestions on how to proceed as you migrate your existing Java application to JDK
15. The guide also highlights the significant changes and enhancements done in JDK
15.
This guide contains the following sections:
• Significant Changes in the JDK
• Preparing For Migration
• Migrating From JDK 8 to Later JDK Releases
• Next Steps
Note:
• Check the Oracle JDK Certified System Configurations for the latest
supported platforms and operating system versions.
• See Removed APIs, Tools, and Components before you start the
migration process.
Significant Changes in the JDK
Before migrating your application to the latest JDK release, you must understand what
the updates and changes are between it and the previous JDK release. If you are
migrating from JDK 8, you should also be familiar with the differences between JDK 8
and later releases that are described in Migrating From JDK 8 to Later JDK Releases.
See the following sections to learn about some of the significant changes in latest JDK
releases.
1
Significant Changes in JDK 15 Release
See JDK 15 Release Notes for the complete list of new features and enhancements in
JDK 15.
The following are some of the updates in Java SE 15 and JDK 15:
• Text Blocks, first previewed in Java SE 13, is a permanent feature in this release
and can be used without enabling preview features.
Text blocks are multiline string literals that avoid the need for most escape
sequences, automatically format the string in a predictable way, and give the
developer control over the format when desired. See JEP 378: Text Blocks and
Programmer's Guide to Text Blocks.
• The Z Garbage Collector (ZGC) is ready to use in production and no longer
an experimental feature. Enable ZGC by using the command-line option
-
XX:+UseZGC
. See JEP 377: ZGC: A Scalable Low-Latency Garbage Collector
(Production).
• Hidden classes are classes that cannot be used directly by the bytecode of other
classes. Hidden classes are intended for use by frameworks that generate classes
at run time and use them indirectly through reflection. See JEP 371: Hidden
Classes.
Preview and Incubator Features
See Java Language Preview Feature for more information about preview features.
• Sealed Classes is a Java language preview feature. Sealed classes and interfaces
restrict which other classes or interfaces may extend or implement them. See JEP
360: Sealed Classes (Preview) and Sealed Classes in Java Platform, Standard
Edition Java Language Updates guide.
• Pattern Matching for
instanceof
, a preview feature from Java SE 14, is re-
previewed for this release. This feature allows common logic in a program, namely
the conditional extraction of components from objects, to be expressed more
concisely and safely. See JEP 375: Pattern Matching for instanceof (Second
Preview) and Pattern Matching for the instanceof in Java Platform, Standard
Edition Java Language Updates guide.
• Records, a preview feature from Java SE 14, is re-previewed for this release.
Records are classes that act as transparent carriers for immutable data. See JEP
384: Records (Second Preview) and Record Classes in Java Platform, Standard
Edition Java Language Updates guide.
• The Foreign Memory Access API allows Java programs to efficiently and safely
access foreign memory outside of the Java heap. See JEP 383: Foreign-Memory
Access API (Second Incubator).
Removed APIs, Tools, and Components
See:
2
• APIs Removed in Java SE 15
• Tools and Components Removed and Deprecated in JDK 15
In addition, there are security related updates that you need to be aware of. See:
Security Updates in JDK 15.
Significant Changes in JDK 14 Release
The following are some of the changes in Java SE 14 and JDK 14:
• Switch is extended so it can be used as either a statement or an expression,
so that both forms can use either traditional
case ... :
labels (with fall through)
or new
case ... ->
labels (with no fall through), with a further new statement
for yielding a value from a switch expression. See JEP 361: Switch Expressions
(Standard) and Java Language Changes.
• G1 is enhanced to improve allocation performance on non-uniform memory
access (NUMA) memory systems. See JEP 345: NUMA-Aware Memory Allocation
for G1.
• JDK Flight Recorder data is now available as a data stream allowing for
continuous monitoring. See JEP 349: JFR Event Streaming.
• New JDK-specific file mapping modes have been added so that the
FileChannel
API can be used to create
MappedByteBuffer
instances that refer to non-volatile
(NVM) memory. See JEP 352: Non-Volatile Mapped Byte Buffers.
• Allows currencies to be formatted with locale-specific accounting formats, for
example, ($3.27) instead of -$3.27. See Accounting Currency Format Support.
• Enhanced
com.sun.management.OperatingSystemMXBean
to ensure that it reports
values based on the current operating environment, such as a container
environment. The MXBean for tools to get information on the operating system has
been improved for container environments. See OperatingSystemMXBean made
container aware.
Experimental, Preview, and Incubator Features
•
Records
is a Java language preview feature, which provides a compact syntax for
declaring classes that are transparent holders for shallowly immutable data. See
JEP 359: Records (Preview).
• Pattern Matching for
instanceof
is a Java language preview feature that simplifies
the
instanceof-and-cast
idiom. See JEP 305: Pattern Matching for instanceof
(Preview).
• Text blocks are multi-line string literals that avoids the need for most escape
sequences, automatically formats the string in a predictable way, and gives the
developer control over the format when desired. Text Blocks were introduced in
JDK 13 as a Preview Feature. Text Blocks is being previewed again in JDK 14 with
the addition of two new escape sequences. See JEP 368: Text Blocks (Second
Preview).
•
jpackage
, a simple tool for packaging self-contained Java applications. See JEP
343: Packaging Tool (Incubator).
3
• An API that allows Java programs to efficiently access foreign memory outside
of the Java heap is introduced. See JEP 370: Foreign-Memory Access API
(Incubator).
• The Z Garbage Collector (ZGC), previously available only for Linux, is introduced
as an experimental feature on Windows and macOS. See JEP 364: ZGC on
macOS and JEP 365: ZGC on Windows.
Removed APIs, Tools, and Components
See:
• APIs Removed in Java SE 14
• Features and Components Removed in JDK 14
In addition, there are security related updates that you need to be aware of. See:
Security Updates in JDK 14.
Significant Changes in JDK 13 Release
The following were some of the important enhancements in Java SE 13 and JDK 13:
• Dynamic CDS Archiving extends application class-data sharing (ApsCDS), which
allows dynamic archiving of classes when the Java application exits. See JEP 350:
Dynamic CDS Archives.
• Text blocks were added to Java language, which provide developers with control
over the format when desired. This is a preview language feature. See JEP 355
Text Blocks (Preview) and JEP 12: Preview Language and VM Features.
• The
switch
expression, a preview language feature, was extended to be used as
either a statement or an expression, so that both forms can use either traditional
labels (with fall through) or new labels (with no fall through). It is used with a
further new statement for yielding a value from a
switch
expression. See JEP 354:
Switch Expressions (Preview) and JEP 12: Preview Language and VM Features.
• The implementation used by
java.net.Socket
and
java.net.ServerSocket
APIs
was replaced with a simpler and more modern implementation that is easy to
maintain and debug. See JEP 353: Reimplement the Legacy Socket API.
• Support for Unicode 12.1. See Unicode 12.1.
• ZGC was enhanced to return unused heap memory to the operating system, which
enhances the memory footprint of the applications. See JEP 351 ZGC Uncommit
Unused Memory.
Significant Changes in JDK 12 Release
The following were some of the important additions and updates in Java SE 12 and
JDK 12:
• JVM Constants API was introduced to model nominal descriptions of key class-file
and run-time artifacts, in particular constants that were loadable from the constant
pool. See JVM Constant API.
4
• The
switch
statement was extended so that it can be used either as a statement
or an expression. This is a preview language feature. See JEP 325: Switch
Expressions (Preview) and JEP 12: Preview Language and VM Features.
• Support for Unicode 11.0. See Unicode 11.0.
• Square character support was provided for the Japanese Reiwa Era, which began
on May, 2019. See Square character support.
• The
NumberFormat
added support for formatting a number in its compact form. See
Compact Number Formatting Support .
Significant Changes in JDK 11 Release
JDK 11 had some significant changes too. As JDK 11 is a long term support (LTS)
release, you should be familiar with the following important changes in JDK 11 release:
• Oracle no longer offers JRE and Server JRE downloads; consequently, Auto-
Update is not available anymore.
• Java Web Start, Java Plugin, and Java Control Panel are not available in JDK.
See Removal of the Deployment Stack.
• JavaFX is no longer included in the JDK. It is now available as a separate
download from https://openjfx.io/.
• JAXB and JAX-WS are no longer bundled with JDK. See Removal of Java EE and
CORBA Modules.
Security Updates
This section provides details on the security updates in JDK releases.
Security Updates in JDK 15
The following are the noteable security updates in JDK 15:
• A new signature scheme Edwards-Curve Digital Signature Algorithm (EdDSA) is
implemented, which is a modern elliptic curve signature scheme that has several
advantages over the existing signature schemes in the JDK. This new signature
scheme does not replace ECDSA. See JEP 339: Edwards-Curve Digital Signature
Algorithm (EdDSA).
• SunJCE provider now supports SHA-3 based Hmac algorithms
• New System Properties to Configure the TLS Signature Schemes
• Support the certificate_authorities extension
See Release Notes for additional information on security related changes.
Security Updates in JDK 14
The following are the noteable security updates in JDK 14:
5
剩余33页未读,继续阅读
资源评论
weixin_40191861_zj
- 粉丝: 63
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功