JDK 14的新特性:switch表达式】的更多相关文章

JDK 14的新特性:instanceof模式匹配 JDK14在2020年的3月正式发布了.可惜的是正式特性只包含了最新的Switch表达式,而Records,patterns,text blocks仍然是预览特性. 本文要讲的就是JDK14的一个预览特性instanceof的pattern matching. 也就是说在instanceof中可以使用模式匹配了. 怎么理解呢? 我们先举个历史版本中使用instanceof的例子. 假如我们是动物园的管理员,动物园里面有Girraffe和Hipp…
JDK 14的新特性:更加好用的NullPointerExceptions 让99%的java程序员都头痛的异常就是NullPointerExceptions了.NullPointerExceptions简称NPE,它是运行时异常的一种,也是java程序中最最容易出现的异常. 出现了NullPointerExceptions之后我们怎么处理呢? 一般情况下就是看日志,看一下到底哪一行出错了.如果这一行只有简单的代码,那么很容易就找到问题所在. 要命的是如果这一行很复杂,那么找出问题就不是那么容易…
传统switch表达式的弊端: 匹配是自上而下的,如果忘记写break, 后面的case语句不论匹配与否都会执行: 所有的case语句共用一个块范围,在不同的case语句定义的变量名不能重复: 不能在一个case里写多个执行结果一致的条件: 整个switch不能作为表达式返回值: java 12 switch新特性: 使用 Java 12 中 Switch 表达式的写法,省去了 break 语句,避免了因少写 break 而出错. 同时将多个 case 合并到一行,显得简洁.清晰也更加优雅的表达…
引入了yield语句,用于返回值: 和return的区别在于:return会直接跳出当前循环或者方法,而yield只会跳出当前switch块. @Test public void testSwitch2(){ String x = "3"; int i = switch (x) { case "1" -> 1; case "2" -> 2; default -> { yield 3; } }; System.out.printl…
支持在Java application执行之后进行动态archive.存档类将包括默认的基础层CDS存档中不存在的所有已加载的应用程序和库类.也就是说,在Java 13中再使用AppCDS的时候,就不再需要这么复杂了. 该提案处于目标阶段,旨在提高AppCDS的可用性,并消除用户进行试运行以创建每个应用程序的类列表的需要. 使用示例: # JVM退出时动态创建共享归档文件:导出jsa java -XX:ArchiveClassesAtExit=hello.jsa -cp hello.jar He…
封面:洛小汐 译者:潘潘 JDK 8 的新特性都还没摸透,JDK 16 的新特性就提着刀来了. 郑重申明: 第一次冒险翻译专业领域的文献,可想而知,效果特别糟糕.一般翻译文献特别是 技术专业领域 的内容,因为涉及到很多专业术语.业内常用语,很多词汇你在翻译软件根本找不到,并且大部分知识点技术都是成体系的.相互关联的.多版本迭代的.有历史原因的等等,因此要求你本身必须清楚每个技术点的前因后果和逻辑关系,否则翻译起来特别耗费时间精力,因为不断翻阅参考文献了解学习和推敲揣摩,但其实徒劳无功,因为很多你…
JDK 5 ~ 10 新特性倾情整理! 最近连 JDK11都在准备发布的路上了,大家都整明白了吗?也许现在大部分人还在用6-8,8的新特性都没用熟,9刚出不久,10-11就不用说了. 为了大家对JDK有一个全面的了解,下面我为大家整理了JDK5~10的所有关键新特性! JDK5新特性 自动装箱与拆箱 枚举 静态导入 可变参数(Varargs) 内省(introspector) 泛型(Generic) For-Each循环 JDK6新特性 Desktop类和SystemTray类 使用JAXB2来…
为了大家对JDK有一个全面的了解,下面我为大家整理了JDK5~11的所有关键新特性! 先看一下JDK的版本迭代图: 注:   OpenJDK和JDK区别  GPL协议通用性公开许可证(General Public License) LTS是长期支持(Long Term Support)的缩写 关于Java9之后没有Java10,而是Java18.3参见这篇文章(其实18.3是指此版本在18年3月发布) JDK5新特性 自动装箱与拆箱 枚举 静态导入 可变参数(Varargs) 内省(intros…
0 引言 本文主要介绍 Java JDK 中 1.7 和 1.8 的新特性. 1 JDK 1.7 新特性 1. switch可以接受String类型: public class Switch { public void test(String str) { switch (str) { case "computer": System.out.println("computer"); break; case "book": System.out.p…
上一篇文章我们了解了Java8新特性-接口默认方法,接下来我们聊一聊Java8新特性之Lambda表达式. Lambda表达式(也称为闭包),它允许我们将函数当成参数传递给某个方法,或者把代码本身当作数据处理.很多语言(Groovy.Scala等)从设计之初就支持Lambda表达式.但是java中使用的是 匿名内部类代替. 最后借助强大的社区力量,找了一个折中的Lambda实现方案,可以实现简洁而紧凑的语言结构. 1.匿名内部类到Lambda的演化 匿名内部类,即一个没有名字的,存在于一个类或方…