switch表达式

switch表达式是Java 12开始就提供的预览特性,到了Java 13仍然没有被转正。此特性可以把switch的执行结果组合到复合表达式中进行运算。

import java.time.Year;

public class SwitchExpressionsDemo {
public static void main(String[] args) {
int year = 2012;
int month = 2; // 把某月的天数与24和60相乘,得到此月份的分钟数
int minutes = 24 * switch (month) {
case 1, 3, 5, 7, 8, 10, 12 -> 31;
case 4, 6, 9, 11 -> 30;
case 2 -> Year.isLeap(year) ? 29 : 28;
default -> throw new IllegalArgumentException("月份应在1~12区间内取值");
} * 60; System.out.printf("%d年%d月有%d分钟", year, month, minutes);
}
}

使用以下命令进行编译:

D:\>javac --enable-preview -source 13 -encoding utf-8 .\SwitchExpressionsDemo.java
注: .\SwitchExpressionsDemo.java 使用预览语言功能。
注: 有关详细信息,请使用 -Xlint:preview 重新编译。

使用以下命令执行程序:

D:\>java --enable-preview SwitchExpressionsDemo
2012年2月有41760分钟

文本块(多行字符串)

从Java 13开始支持文本块(多行字符串),可以替代从前丑陋的多行字符串拼接。此特性目前也是预览特性。

public class MultiLinesStringDemo {
public static void main(String[] args) {
// 使用"""..."""可以声明一个文本块
String multiLinesString = """
学海孤帆远
书山崎路长
玉颜千钟粟
长留万古芳"""; // 直接在控制台输出文本块
System.out.println(multiLinesString); System.out.println("----------- 分割线 -----------"); // 使用String类的lines()方法得到一个Stream对象,处理并输出其中的每个元素
// Stream中的元素由文本块中的每一行子串构成
multiLinesString.lines().map(s -> s + "!!!!!").forEach(System.out::println);
}
}

使用以下命令进行编译:

D:\>javac --enable-preview -source 13 -encoding utf-8 .\MultiLinesStringDemo.java
注: .\MultiLinesStringDemo.java 使用预览语言功能。
注: 有关详细信息,请使用 -Xlint:preview 重新编译。

使用以下命令执行程序:

D:\>java --enable-preview MultiLinesStringDemo
学海孤帆远
书山崎路长
玉颜千钟粟
长留万古芳
----------- 分割线 -----------
学海孤帆远!!!!!
书山崎路长!!!!!
玉颜千钟粟!!!!!
长留万古芳!!!!!

Java 13新特性的更多相关文章

  1. Java 13 新特性

    一.core-libs/java.nio 添加 FileSystems.newFileSystem(Path, Map<String, ?>) 方法 java.nio.file.FileS ...

  2. Java 8 新特性终极版

    声明:本文翻译自Java 8 Features Tutorial – The ULTIMATE Guide,翻译过程中发现并发编程网已经有同学翻译过了:Java 8 特性 – 终极手册,我还是坚持自己 ...

  3. Java 8新特性探究(八)精简的JRE详解

    http://www.importnew.com/14926.html     首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 Java小组 工具资源 - 导航条 - 首页 所有文章 资讯 ...

  4. 【整理】Java 8新特性总结

    闲语: 相比于今年三月份才发布的Java 10 ,发布已久的Java 8 已经算是老版本了(传闻Java 11将于9月25日发布....).然而很多报道表明:Java 9 和JJava10不是 LTS ...

  5. Java-Runoob-高级教程:Java 9 新特性

    ylbtech-Java-Runoob-高级教程:Java 9 新特性 1.返回顶部 1. Java 9 新特性 Java 9 发布于 2017 年 9 月 22 日,带来了很多新特性,其中最主要的变 ...

  6. Java 8新特性之旅:使用Stream API处理集合

    在这篇“Java 8新特性教程”系列文章中,我们会深入解释,并通过代码来展示,如何通过流来遍历集合,如何从集合和数组来创建流,以及怎么聚合流的值. 在之前的文章“遍历.过滤.处理集合及使用Lambda ...

  7. Java 8 新特性终极指南

    1.前言 毫无疑问,Java 8的发布是自从Java5以来Java世界中最重大的事件,它在编译器.工具类和Java虚拟机等方面为Java语言带来的很多新特性.在本文中我们將一起关注下这些新变化,使用实 ...

  8. Java 11 新特性介绍

    Java 11 已于 2018 年 9 月 25 日正式发布,之前在Java 10 新特性介绍中介绍过,为了加快的版本迭代.跟进社区反馈,Java 的版本发布周期调整为每六个月一次——即每半年发布一个 ...

  9. [转帖]Java 8新特性探究 前言

    Java 8新特性探究 前言 https://my.oschina.net/benhaile/blog/174136 讲下java的历史 感觉挺好的. 评论 17 jdk8java8javase新特性 ...

随机推荐

  1. NSIP

    1. 第一章 信息安全概述 信息:信息是有意义的数据,具有一定的价值,是一种适当保护的资产,数据是是客观事务属性的记录,是信息的具体表现形式,数据经过加工处理之后 就是信息,而信息需要经过数字处理转换 ...

  2. ElasticSearch 连载二 中文分词

    ElasticSearch 连载二 中文分词 上一章ElasticSearch 连载一 基础入门 对Elastic的概念.安装以及基础操作进行了介绍. 那是不是有童鞋会有以下几个问题呢? 什么是中文分 ...

  3. JVM堆空间用途分析与划分依据

    在上一次[https://www.cnblogs.com/webor2006/p/9876493.html]已经对JVM的内存空间的划分进行了理论化的学习,这次还是对上一次提到的理论进行进一步的补充, ...

  4. Springboot简单集成ActiveMQ

    Springboot简单集成ActiveMQ 消息发送者的实现 pom.xml添加依赖 <dependency> <groupId>org.springframework.bo ...

  5. Java 中抽象类与接口的区别

    TypeScript 中的接口,有点类似抽象类的概念.Java 中抽象类属于包含属性与抽象行为,而接口通常只是抽象行为.抽象类可以实现模板模式. 参考 https://www.cnblogs.com/ ...

  6. java中的switch

    switch 语句由一个控制表达式和多个case标签组成. switch 控制表达式支持的类型有byte.short.char.int.enum(Java 5).String(Java 7). swi ...

  7. Spring源码窥探之:Spring AOP初步

    AOP(Aspect Oriented Programming):即我们常说的面向切面编程. 什么是AOP?AOP是在我们原来写的代码的基础上,进行一定的包装,比如在方法执行前.方法返回后.方法抛出异 ...

  8. 淘宝上的大智慧L2数据,月卡最便宜是8元钱,这个也可以获取BBD、DDX等数据!

    Want:从顶牛股网上下载DDX数据. 1.下载历史DDE数据:获取最近120个交易日的DDE数据 #define SFURL_DNG_SINGLEL"http://www.dingniug ...

  9. HDU 6162 - Ch’s gift | 2017 ZJUT Multi-University Training 9

    /* HDU 6162 - Ch’s gift [ LCA,线段树 ] | 2017 ZJUT Multi-University Training 9 题意: N节点的树,Q组询问 每次询问s,t两节 ...

  10. 使用jQuery快速高效制作网页交互特效---jQuery选择器

    一.什么是jQuery选择器 Query选择器继承了CSS与Path语言的部分语法,允许通过标签名.属性名或内容对DOM元素进行快速.准确的选择, 而不必担心浏览器的兼容性,通过jQuery选择器对页 ...