今天jdk13正式发布,swith表达式,文本块等新特性很实用

本文转载自:徐雷frank
原文链接:https://yq.aliyun.com/articles/718128

前言

正式发布jdk13后,swith表达式,文本块等究竟有多好用?

介绍

今天,9月17日,Java JDK 13正式发布。现在Java的更新速度非常快,每6个月发布一个新的Java版本。当然现在统计数据来看,绝大部分企业还是Java 8,不会冒险升级,作为企业应用开发,Java8也足够了。

另外企业不用担心Oracle 版本的JDK收费问题。之前的文章也做过介绍。只要我们使用Open JDK代替Oracle JDK就可以

Java 13 新特性

JDK 13 此版本将是Java SE平台版本13的参考实现,由Java Community Process中的JSR 388指定。

(1)350:Dynamic CDS Archives 动态CDS存档。扩展应用程序类 - 数据共享( application class-data sharing),以允许在Java应用程序执行结束时动态归档类。 归档类将包括默认的基础层CDS存档中不存在的所有已加载的应用程序类和库类。

(2)351:ZGC: 增强ZGC以将未使用的堆内存返回给操作系统。

(3)353:重新实现旧版套接字API:维护和调试的更简单,新代码替换java.net.Socket和java.net.ServerSocket API的底层实现。 新的实现很容易适应用户模式线程threads。

(4)354:Switch 表达式(预览):JDK12继续迭代。

(5)355:Text Blocks文本块 (预览):将文本块添加到Java语言。 文本块是一个多行字符串文字,它避免了对大多数转义序列的需要,以可预测的方式自动格式化字符串,并在需要时让开发人员控制格式。

新特性代码

Switch Expressions

在JDK 12中引入了Switch表达式作为预览特性。JEP 354修改了这个特性,它引入了yield语句,用于返回值。这意味着,switch表达式(返回值)应该使用yield, switch语句(不返回值)应该使用break。

在以前,我们想要在switch中返回内容,还是比较麻烦的,一般语法如下:

今天jdk13正式发布,swith表达式,文本块等新特性很实用

在JDK13中使用以下语法:

今天jdk13正式发布,swith表达式,文本块等新特性很实用

或者

今天jdk13正式发布,swith表达式,文本块等新特性很实用

在这之后,switch中就多了一个关键字用于跳出switch块了,那就是yield,他用于返回一个值。和return的区别在于:return会直接跳出当前循环或者方法,而yield只会跳出当前switch块。

Text Blocks

这个是JDK 13中新增的功能。随着文本块Text Block的引入,即多行字符串文字,字符串可以跨越几行代码,同时避免常见情况下的转义序列。 它还增强了Java程序中的字符串可读性。这个还是比较方便的,语法很简单。

这是Java13新特性 文本块测试;
这是Java13新特性 文本块测试;
这是Java13新特性 文本块测试;
这是Java13新特性 文本块测试;
这是Java13新特性 文本块测试;

Dynamic CDS(Class-Data Sharing) Archiving

CDS的功能在进化一步,就是动态CDS功能。说白了,可以在运行期间动态保存类数据,也就是所谓的归档。

应用程序class-data Sharing(AppCDS)再JDK13新版本里已经简化。 在应用程序退出时,可以动态存档类数据。 动态生成的归档文件将在与正在运行的JDK映像一起打包的默认系统归档文件上创建生成,并保存数据。

我们可以使用选项参数-XX:ArchiveClassesAtExit = 控制程序再退出时生成存档。 也可以:SharedArchiveFile = ,来使用动态存档功能。

#创建存档文件
% bin/java -XX:ArchiveClassesAtExit=helloworld.jsa -cp helloworld.jar Hello
# 使用存档文件
% bin/java -XX:SharedArchiveFile=hello.jsa -cp helloworld.jar Hello
# 使用动态存档,在老文档基础上
% bin/java -XX:SharedArchiveFile=<base archive>:helloworld.jsa -cp helloworld.jar Hello

总结

Java 13即将于2019年9月17日发布。第二个候选版本已经于2019年8月22日发布。
我们详细介绍了Java12和13中引入的新功能,并给出了一些关键特性的代码实例。
OpenJDK 13中也将引入相同的功能。注意生产环境,尽量使用Open JDK,学习使用可以了。正式项目,仔细评估,不到万不得已,推荐使用成熟、稳定的Java 8版本。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容