下一代防火墙关键技术漫谈
|
当然,你也可以在 IDE 中启用它们,但是不要在你的新项目中默认启用预览功能。 我们看一看这些变更,在未来的 Java 版本中,它们会对我们的编码产生更大的影响。 Java record Java record 是我们长期以来一直要求的一项特性,我相信你早就多次遇到这样的场景了,那就是极不情愿地实现 toString、hashCode、equals 方法以及每个字段的 getter(在这里,我假设你已经不再实现 setter 了,还记得我们在“Java 中新的并发模型”一文中所讨论的不可变性吗?)。 Kotlin 提供了数据类(data class)来解决这个问题,Java 也通过发布 record 类来解决了这个问题,同样的问题,Scala 是通过 case 类来解决的。
这些类的主要目的是在对象中保存不可变的数据。让我们通过一个示例来看看它在 Java 中能够带来多么好的效果。我们实例化并对比 Employee 类,需要编写这么多的代码: 从图中可以看出,Kotlin 迅速变得非常流行,但是在最近几年,它似乎稳定了下来。 Oracle 很好地记录了业界对 Kotlin 的反应,如果你看一下 JDK 15 的发布说明,就会发现 Java 的一些新特性基本上就是对 Kotlin 变更的复制。例如,新的 Java record、文本块(使用三个引号的多行字符串)以及 switch 语句(或多或少借鉴了 Kotlin 的 when 语句)。我们可以通过该地址查阅 JDK 15 的发布说明。 刚才提到的这些,我都将其称为“Java 的 Kotlin 化(Kotlinisation)”。Kotlin 通过成为 Java 有史以来最强的竞争对手,为 Java 指明了发展的方向。在我看来,Kotlin 是我见过的唯一一种能够战胜 Java,并成为行业领导者的语言。 3. Java 的“Kotlin”化Java 的一些新特性主要在可读性方面进行了增强,并改善了其主要的一个弱点,那就是繁琐性。我们可以断言,它与某些 Kotlin 的特性具有相似性。 需要注意,这些特性大多数都还处于特性预览阶段,这意味着你安装 JDK 14 或 JDK 15 时,默认不会启用这些特性。 Java 特性预览指的是一些在发布版本中包含、但默认禁用的特性。在发行版中包含它们仅仅是为了收集社区开发人员的反馈,因此它们更经常发生变更,这也是为何不推荐在生产环境代码中使用它们的原因。
要在编译时启用这些特性,我们需要执行如下代码: 那 Oracle 对这种新趋势的反应是什么呢?那就是在 2014 年发布了 Java Lambdas 和 Streams。很多人都认为当时这是 Java 击败 Scala 的最大举措。目前行业中每个人都能感受到最近几年 Scala 因为缺少流所遭受的损失。 JVM 领域中存在竞争者的另外一个好处就是 JIT 编译器和 JVM 本身正在经历的持续改进。现在,有更多的人对 JVM 优化和性能改善感兴趣。所以,竞争对每个人都是好事。 Kotlin 是这个领域最新的竞争者。Kotlin 非常重要,因为它在一定程度上为 Oracle 指明了前进方向。Kotlin 表明它能够保持 Java 好的组成部分,同时创建一个更简洁和快速的编码语言。
如果看一下谷歌趋势的话,我们能够看到在过去几年间,Kotlin 的流行程度: (编辑:鹰潭站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

