JDK新功能
在预览阶段添加文本块。文本块是一个多行字符串文字,可以避免大多数转义序列的需要。文本块以可预测的方式自动格式化字符串,并使开发人员可以控制格式。该项目列举了为Java添加文本块背后的一些目标。
一个目标是通过使表达跨越几行源代码的字符串变得容易,同时避免常见情况下的转义序列来简化Java程序的编写。
第二个目标是增强程序中字符串的可读性,这些程序表示用非Java语言编写的代码。
第三个目标是通过规定任何新构造可以表达与字符串文字相同的字符串集,解释相同的转义序列,并像字符串文字一样进行操作来支持字符串文字的迁移。原始字符串文字是JDK 13提出的一个特性,但有利于文本块,它采用了不同的方法来表示字符串而不转义换行符和引号。原始字符串文字专注于字符串的原始性,但Java项目团队现在认为焦点是错误的,因为虽然原始字符串文字可能跨越多行源代码,但它们涉及支持未转义分隔符的昂贵要求。已经为JDK 13预测了原始字符串文字,但从未正式添加到其建议的功能列表中。
重新实现传统套接字API,这将涉及使用更简单,更现代的实现替换API net.Socket和java.net.ServerSocketAPI 使用的底层实现,易于调试和维护。新的实现旨在易于适应使用用户模式线程(也称为光纤),这些线程正在Project Loom中进行探索。上述传统API可以追溯到JDK 1.0,并且包含传统C和Java代码的混合,这些代码被描述为调试和维护的痛苦。遗留实现还存在其他问题:支持异步关闭,导致可靠性和移植问题的本机数据结构,以及需要彻底检查的并发问题。
JDK提出了第二个switch表达式预览。在JDK 12中有一个,但是要进行一个更改:要从switch表达式中生成一个值break,要删除with value语句以支持a yield声明。目的是扩展,switch以便它可以用作语句或表达式,因此两个表单既可以使用case ... :带有连贯符号的传统标签,也可以使用新case … ->标签,而不需要通过,还有一个新的语句用于从switch表达式中产生值。这些更改将简化编码并为模式匹配做好准备。
增强ZGC(Z垃圾收集器)以将未使用的内存返回到操作系统,引用的提议被集成到JDK 13中.ZGC被称为可扩展的低延迟收集器,目前不会将未使用的内存返回到操作系统即使长时间没有使用内存。对于某些应用程序和环境而言,此行为并非最佳,尤其是那些需要关注内存占用的应用程序和环境,例如应用程序可能长时间处于空闲状态并与其他应用程序共享或竞争资源的容器或环境。
扩展应用程序类 - 数据共享(AppCDS),以便在应用程序执行结束时动态存档类。存档类将包括默认的基础层CDS存档中不存在的所有已加载的应用程序和库类。该提案处于目标阶段,旨在提高AppCDS的可用性,并消除用户进行试运行以创建每个应用程序的类列表的需要。
JDK特征
350:动态CDS档案
351:ZGC:取消使用未使用的内存
353:重新实现Legacy Socket API
354:切换表达式(预览)
355:文本块(预览)
JDK安装步骤
1、从本站下载并解压安装包,双击jdk-13_windows-x64_bin.exe运行,点击下一步。
2、选择安装路径,选择好之后点击下一步。
3、正在安装中,请稍等一会儿。
4、安装完成,点击关闭退出向导。
JDK使用说明
1、版本字符串格式
Java SE平台采用基于时间的发布模型,JDK每六个月发布一次。
从JDK 10及更高版本开始,版本字符串的格式反映了Java SE平台的基于时间的发布模型$FEATURE.$INTERIM.$UPDATE.$PATCH。
$FEATURE是每个功能版本增加的版本号。功能版本包含新功能以及Java SE平台规范指定的现有功能的更改。版本号每六个月递增一次。例如,2018年3月发行版的版本号为10,2018年9月发行版的版本号为11,依此类推。
$INTERIM是每个临时版本增加的版本号,其中包含错误修复和增强功能。临时版本不包含不兼容的更改,功能删除,也不包含对标准API的任何更改。由于六个月的发布模型不包含临时版本,因此临时版本的版本号始终为零(0)。但是,此版本号保留用于将来的临时版本(如果有)。
$UPDATE是更新版本增加的版本号,其中包括针对安全问题,回归和新功能中的错误的修复程序。版本号在$FEATURE发布后一个月递增,之后每三个月递增一次。例如,完整的版本号为10月更新版本是13 .0.1,完整的版本号为1月更新版本是13 .0.2,等等。
$PATCH 是紧急修补程序版本增加的版本号,用于修复关键问题。
版本字符串没有尾随零元素。例如,如果值$FEATURE是13,的值$INTERIM是0,的值$UPDATE是1,和的值$PATCH是0,则完整的版本号是13 .0.1。
2、开始使用JDK
使用Windows“ 开始”菜单中的Java Development Kit访问与参考文档相关的信息。
在JDK安装期间,Java菜单项将添加到Windows“ 开始”菜单中,以便于访问“参考文档”,这是在线文档网页。
在JDK安装和卸载过程中,会更新相应的开始菜单项,以便它们与系统上的最新JDK版本相关联。
注意:Windows 7和Windows 10有一个开始菜单; 但是,该菜单在Windows 8和Windows 8.1中不可用。Windows 8和Windows 8.1中的JDK和Java信息可在以下Start目录中找到:%ALLUSERSPROFILE%MicrosoftWindowsStart MenuPrograms。
3、在Windows上卸载JDK
要卸载JDK 13,请使用Microsoft Windows 控制面板中的“ 添加/删除程序”实用程序。
4、JDK安装故障排除
以下部分提供了在安装JDK时解决问题的提示(如果有)。
解压缩期间的系统错误:
如果看到错误消息:system error during decompression,则磁盘上可能没有足够的空间包含该TEMP目录。
程序无法在DOS模式下运行:
如果看到错误消息: This program cannot be run in DOS mode,则执行以下操作:
打开MS-DOS shell或命令提示符窗口。
右键单击标题栏。
选择属性。
选择“ 程序”选项卡。
单击高级。
确保未选中“ 防止基于MS-DOS的程序检测Windows”项。
选择确定。
再次选择确定。
退出MS-DOS shell。
重启你的电脑。
不属于系统代码页的字符:
如果安装目录不是系统区域设置的代码页的一部分,则可能会发生1722错误。要防止这种情况发生,请确保用户和系统区域设置完全相同,并且安装路径仅包含属于系统区域设置代码页的字符。可以在“ 区域选项”或“ 区域设置”控制面板中设置用户和系统 区域设置。
相关的错误号是4895647。
5、JDK 13发布的重大变化
以下是Java SE 13和JDK 13中的一些重要增强功能:
动态CDS归档扩展了应用程序类 - 数据共享(ApsCDS),允许在Java应用程序退出时动态归档类。请参阅JEP 350:动态CDS存档。
Java语言中添加了文本块,可以在需要时为开发人员提供对格式的控制。这是一种预览语言功能。请参阅JEP 355文本块(预览)和JEP 12:预览语言和VM功能。
的switch表达,预览的语言特性,一直延续到被用作任何声明或表达式,从而使这两种形式可以使用传统的标签(与告吹)或新标签(没有落空)。它与另一个新语句一起使用,用于从switch表达式中生成值。请参阅JEP 354:切换表达式(预览)和JEP 12:预览语言和VM功能。
java.net.Socket和 java.net.ServerSocketAPI 使用的实现被 更简单,更现代的实现取代,易于维护和调试。请参阅JEP 353:重新实现旧版套接字API。
支持Unicode 12.1。请参阅Unicode 12.1。
ZGC已得到增强,可将未使用的堆内存返回给操作系统,从而增强了应用程序的内存占用。请参阅JEP 351 ZGC Uncommit Unused Memory。
此外,还需要了解与安全相关的更新以及一些已删除的工具和组件。看到:
安全更新
删除了API,工具和组件
6、JDK
Java Development Kit(JDK)API特定于JDK,并不一定适用于Java SE Platform的所有实现。这些API位于名称以其开头的模块中jdk。
jdk.accessibility
定义Assistive Technologies实现者使用的JDK实用程序类。
jdk.attach
定义附加API。
jdk.charsets
提供charsets不在java.base(大多数是双字节和IBM字符集)。
jdk.compiler
定义 系统Java编译器 及其命令行等效项javac的实现。
jdk.crypto.cryptoki
提供SunPKCS11安全提供程序的实现。
jdk.crypto.ec
提供SunEC安全提供程序的实现。
jdk.dynalink
定义用于动态链接对象上的高级操作的API。
jdk.editpad
提供使用的编辑板服务的实现jdk.jshell。
jdk.hotspot.agent
定义HotSpot可维护性代理的实现。
jdk.httpserver
定义特定于JDK的HTTP服务器API。
jdk.jartool
定义用于操作Java Archive(JAR)文件的工具,包括jar和 jarsigner工具。
jdk.javadoc
定义 系统文档工具 及其命令行等效项javadoc的实现。
jdk.jcmd
定义用于诊断和排除JVM故障的工具,例如jcmd,jps, jstat工具。
jdk.jconsole
定义JMX图形工具jconsole,用于监视和管理正在运行的应用程序。
jdk.jdeps
定义用于分析Java库和程序中的依赖项的工具,包括jdeps, javap和 jdeprscan工具。
jdk.jdi
定义Java调试接口。
jdk.jdwp.agent
提供Java调试线协议(JDWP)代理的实现。
jdk.jfr
定义JDK Flight Recorder的API。
jdk.jlink
定义JLINK创建运行时图像,工具JMOD用于创建和操作JMOD文件的工具,以及jimage用于检查类和资源的JDK实现特定的容器文件的工具。
jdk.jshell
提供用于评估Java代码片段的jshell工具,并定义用于建模和执行片段的JDK特定API。
jdk.jsobject
定义JavaScript对象的API。
jdk.jstatd
定义用于启动jstat工具的守护程序的jstatd工具,以远程监视JVM统计信息。
jdk.localedata
提供美国区域设置以外的区域设置的区域设置数据。
jdk.management
为JVM定义特定于JDK的管理接口。
jdk.management.agent
定义JMX管理代理。
jdk.management.jfr
定义JDK Flight Recorder的管理界面。
jdk.naming.dns
提供DNS Java命名提供程序的实现。
jdk.naming.rmi
提供RMI Java命名提供程序的实现。
jdk.net
定义JDK特定的Networking API。
jdk.pack
定义用于将JAR文件转换为压缩pack200文件并将打包文件转换为JAR文件的工具,包括 pack200和 unpack200工具。
jdk.rmic
定义用于使用远程对象的Java远程方法协议(JRMP)生成存根和骨架的rmic编译器。
jdk.scripting.nashorn
为ECMAScript 5.1编写的程序提供Nashorn脚本引擎和运行时环境的实现。
jdk.sctp
为SCTP定义特定于JDK的API。
jdk.security.auth
提供javax.security.auth.* 接口和各种身份验证模块的实现。
jdk.security.jgss
定义GSS-API的JDK扩展和SASL GSSAPI机制的实现。
jdk.xml.dom
定义不属于Java SE API的W3C文档对象模型(DOM)API的子集。
jdk.zipfs
提供Zip文件系统提供程序的实现。
JDK更新日志
日日夜夜的劳作只为你可以更快乐
嘛咪嘛咪哄~bug通通不见了!
华军小编推荐:
Java SE Development Kit安装非常简单、功能强大,且无安装垃圾,特地推荐给大家,欢迎大家下载!本站还有AlphaEbot动作编辑软件、河小象编程客户端、自动化测试工具AutoRunner、Easy GUI、小海龟LOGO语言,供您下载!
有用
有用
有用