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. C++——异常处理

    前言 大型和十分复杂的程序往往会产生一些很难查找的甚至是无法避免的运行时错误.当发生运行时错误时,不能简单地结束程序运行,而是退回到任务的起点,指出错误,并由用户决定下一步工作.面向对象的异常处理(e ...

  2. JAVA 使用原生jdbc批量添加,表被锁住问题

    今天用jdbc批量添加数据的时候遇到了一个问题,当数据添加成功过后,再想对该表进行操作发现表被锁住了,检查了下代码发现事务提交了呀!!!!!!!!!!!! 去网上查了大半天的资料才发现问题,在conn ...

  3. Windows Server 2016 IIS的安装与配置

    1. 打开服务器管理器,点击[添加角色和功能选项].        2. 进入“添加角色和功能向导”页面,点击下一步. 3. 安装类型选择[基于角色或基于功能的安装],点击下一步. 4. 进入服务器选 ...

  4. Alpha版本发布

                Alpha版本发布   Part1.基本介绍 作业所属课程 课程链接 作业要求 要求链接 团队名称 Typhoon 作业目标 通过本次团队项目,体验通过使用软件工程来研发项目的 ...

  5. Go语言的反射

    反射是语言里面是非常重要的一个特性,我们经常会看见这个词,但是对于反射没有一个很好的理解,主要是因为对于反射的使用场景不太熟悉. 一.理解变量的内在机制 1.类型信息,元信息,是预先定义好的,静态的. ...

  6. python在算法题中判断输入结束(EOF)

    有些算法题是这样要求的,一行输入一行数据,然后没有规定我要输入多少行,你要自行判断文件结束EOF,否则是会runtime error的,因为oj内部都是用文件来进行读写的. 例如a+b,每一行输入a ...

  7. ASP.NET 下配置请求大小、请求时间等参数

    在邮件发送系统或者其他一些传送文件的网站中,用户传送文件的大小是有限制的,因为这样不但可以节省服务器的空间,还可以提高传送文件的速度.下面介绍如何在Web.Config文件中配置限制上传文件大小与时间 ...

  8. Java类与类之间的6种关系及uml表示

    一.继承关系 继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议 ...

  9. 03 Spring对Bean的管理

    Spring创建bean的三种方式 1.第一种方式:使用默认构造函数创建 bean.xml <?xml version="1.0" encoding="UTF-8& ...

  10. Spring MVC 学习笔记(一)

    • 1.SpringMVC概述 • 2.SpringMVC的HelloWorld • 3.使用@RequestMapping映射请求 • 4.映射请求参数&请求头 • 5.处理模型数据 • 6 ...