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. awk初级教程

    参考:sed & awk 概述 sed & awk指令组成 与sed区别 尽管awk指令与sed指令的结构相同,都由模式和过程两部分组成,但过程本身有很大不同. awk看上去不像编辑器 ...

  2. 2019招商银行M-Geeker线上比赛题解析

    目录 1. 最大子序和(变体) 2. 矩阵求乘积最大 3. 逐渐平均--值最大 目前已更新:第一题,第二题,第四题 1. 最大子序和(变体) 题目描述: 首先考虑常规的最大子序和的问题,即不能去掉中间 ...

  3. 详细讲解vue.js里的父子组件通信(props和$emit)

    在进入这个话题之前,首先我们先来想一下在vue里,如何写一个父子组件.为了简单起见,下面的代码我都没用脚手架来构建项目,直接在html文件里引入vue.js来作为例子.父子组件的写法如下: <d ...

  4. python-selenium安装笔记

    python-selenium操作火狐,谷歌,360,ie 亲测可用,windows环境 python3.6 由于python2到2020年不进行维护所有都用python3 selenium pip ...

  5. 利用selenium自动化测试样例一

    import argparse import logging import psycopg2 import datetime,time import os,sys from selenium impo ...

  6. Codeforces Round #413 (Div1 + Div. 2) C. Fountains(树状数组维护最大值)

    题目链接:https://codeforces.com/problemset/problem/799/C 题意:有 c 块硬币和 d 块钻石,每种喷泉消耗硬币或钻石中的一种,每个喷泉有一个美丽值,问建 ...

  7. [Angular 8] Implement a Custom Preloading Strategy with Angular

    Preloading all modules is quite an extreme approach and might not always be desirable. For instance, ...

  8. PHP流程控制之if语句多种嵌套

    王思总同学我们在最开始的故事中讲到了他有两个秘书:一个生活秘书.一个工作秘书. 王思总同学在出行和项目中也是极度有计划性.他给自己的生活秘书和工作秘书分别指派了出差的行程:大理石平台支架 生活上: 先 ...

  9. 把hdfs数据写入到hbase表

    功能:把hdfs上的数据写入到hbase表. hadoop的mapreduce输出要导入到hbase表,最好先输出HFile格式,再导入hbase,因为HFile是hbase的内部存储格式,所以导入效 ...

  10. 剖析生产系统的I/O模式

    剖析生产系统的I/O模式 2019/02/13 vmunix 了解I/O的特点对于优化系统性能非常重要,I/O是顺序的还是随机的,是读操作还是写操作,读写的比例是多少,I/O数据块的大小,这些都是影响 ...