Java 新特性:JShell
JShell 是在 JDK 9 正式发布的。它是类似于 Shell 的交互式编程环境,可以即时执行 Java 代码给出反馈。
快速反馈
在传统的学习 Java 时,对于一段入门代码,我们需要相对复杂的流程。
编辑器输入以下代码:
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
执行以下编译命令:
javac HelloWorld.java
运行:
java HelloWorld
对于后续的每次代码改动,我们都要执行上述的过程。
当然,我们也可以把这个过程放到 IDE 中去做,也不过是 IDE 自动化了以上过程。
相对于 Shell 脚本、Python、Kotlin 这些语言,Java 一直以来缺少一种即时执行、反馈的交互式编程环境。JShell 就是用来填补这一块空白的。
终端执行 jshell
进入 JShell 后,就可以直接运行以下代码,得到反馈:
jshell> System.out.println("Hello, world!");
Hello, world!
jshell>
JShell 加速了反馈,让我们能够快速的学习、验证 Java 特性点。
除此之外,JShell 和 Java 有一些不太一致的地方需要注意。
重复声明
在 JShell 中,我们可以多次重复声明同一变量,也可以改变其类型。
jshell> String greeting = "Hola";
greeting ==> "Hola"
| modified variable greeting : String
| update overwrote variable greeting : String
jshell> Integer greeting;
greeting ==> null
| replaced variable greeting : Integer
| update overwrote variable greeting : String
这降低了我们在 JShell 中编码的难度,不需要记住以前声明过什么变量,方便了我们验证少量代码。
直接执行表达式
JShell 中我们可以直接执行表达式,方便了我们验证表达式的工作。
jshell> 1 + 1
$1 ==> 2
| created scratch variable $1 : int
总结
总的来说,JShell 方便我们验证一些简单的语法特性和逻辑,有利于我们快速学习、验证 Java 的语言特性。对于一些复杂的逻辑则不太适合,复杂的代码逻辑还是交给 IDE 去做。
评论