全国协议5人面授小班,企业级独立开发考核,转业者的IT软件工程师基地 登录/注册 | 如何报名

免费领取试听课程

并获得专业顾问一对一进行选课辅导

课程名称不能为空
姓名不能为空
手机号码不能为空

领取成功

Java18新改动:默认UTF-8

行业新闻 汉码未来 | java utf 更新

2022-04-21 09:25:48

上个月,Oracle官方网站发布了JDK18/Java18的官方版本。据报道,Java18在性能、稳定性和安全性方面得到了全面提高,包括平台的9项JDK增强(JEP),大大提高了开发人员的工作效率。

Java18新改动:默认UTF-8

已知JDK18版本主要集中在9个增强功能上,其中之一是将UTF-8设置为标准JavaAPI的默认字符集。在JDK17和早期版本中,默认字符集只能在Java虚拟机运行时确定,因此在实现和处理方面存在一些问题,这取决于不同的操作系统、语言环境等因素。从Java18开始,依赖默认字符集的API将在所有实现、操作系统、语言环境和配置中保持一致。

UTF-8之前默认存在问题。

Javadoc(Javadoc命令用于生成自己的API文档)中有一句话:默认字符集是在虚拟机运行时确定的,通常根据语言环境和底层操作系统使用的字符集来确定。这意味着默认字符集在不同的操作系统中,地理区域和用户偏好之间可能会有很大的差异,也就是说,同一个物理机器上的两个用户甚至可能有不同的默认字符集。

此外,如果我们在构建过程中没有指定任何字符集,那么像java.io.fileWriter或java.io.filerereader这样的旧JDKAPI将使用默认字符集写入操作;在新版本中,像java.nio.file.files这样的新API将默认为UTF-8。

此外,许多开发人员在JVM(Java虚拟机)启动时,依靠不支持的系统属性file.encoding设置默认字符集。虽然有些JVM可能支持它,但这并不能保证其他JVM也支持它。

UTF-8F-8的好处。

Java18将UTF-8作为所有实现、操作系统、语言环境和配置的默认字符集。然后,所有依赖默认字符集的API都将是一致的,而不需要设置file.encoding系统属性,也不需要在创建相应对象时总是指定字符集。我们都知道字符集一致性的重要性,默认情况下,UTF-8将提高我们软件的可靠性和一致性,这是一个非常流行的变化。

还有一些问题。

如果我们想让JDK18和以前的版本一样,那么我们必须用-Dfile.encoding=COMPAT启动JVM。例如,我们有一些源代码不能重新编译,它依赖于不同于UTF-8的默认字符集,所以我们需要这样做。在所有其他情况下,无需设置此属性。但是,请注意,当您使用-Dfile.encoding=COMPAT和java.nio.file.files中的函数,而不定义字符集,但返回到UTF-8时,您将返回到原点-您的应用程序的某些部分将以UTF-8读取/写入文件,而其他部分将使用操作JVM的默认字符集。

在JDK17和之前的版本中,我们都可以写入charset.forname(default),以获得JVM的默认字符集。在JDK18中,银行代码将抛出unsupportedcharsetexception。因此,如果我们的源代码中有这句话,或者我们使用任何包含这句话的库,我们的应用程序将在运行过程中抛出异常。


以上就是汉码未来给大家分享的文章,希望对小伙伴们有所帮助,想要了解更多Java18新改动:默认UTF-8相关内容的小伙伴可以登录汉码未来官网咨询,主打5人小班,全程面授,主打Java开发,web前端开发等课程,有专业的授课老师为你答疑解惑。

    

分享到:



【免责声明】由于政策等各方面情况的不断调整与变化,本网站所提供的信息仅供参考,请以权威部门公布的正式信息为准。本网站在文章内容来源出处标注为其他平台的稿件均为转载稿,免费转载出于非商业性学习目的,版权归原作者所有。如您对内容、版权等问题存在异议请与本站联系,我们会及时进行处理解决。 删除,请联系客服。
相关推荐
为什么选择汉码未来