Java 新特性-JShell

JShell 特性在 JDK9 中正式发布,它是 Java 的交互式编程环境。下面我们通过 JShell 的启动与退出,以及执行语句、声明及表达式来了解它。

启动 JShell

执行命令 jshell 可进入 JShell 编程环境,加上 -v 命令行参数进入详细模式,即 jshell -v

退出 JShell

执行命令 /exit 退出 JShell 编程环境。

立即执行的语句

可通过 JShell 来执行语句,示例如下:

1
2
jshell> System.out.println("Hello, World!");
Hello, World!

可覆盖的声明

JShell 是一个有状态的工具,可以运行变量的重复声明和类型变更,示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
jshell> String s = "A";
s ==> "A"
| 已创建 变量 s : String

jshell> s = "B";
s ==> "B"
| 已分配给 s : String

jshell> System.out.println(s);
B

jshell> Integer s = 1;
s ==> 1
| 已替换 变量 s : Integer
| 更新已覆盖 变量 s : String

jshell> System.out.println(s);
1

独白的表达式

在 Java 程序里,语句是最小的可执行单位,表达式并不能单独的存在,但 JShell 却支持表达式的输入,示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
jshell> 2+3
$7 ==> 5
| 已创建暂存变量 $7 : int

jshell> System.out.pr
print( printf( println(
jshell> System.out.println($7);
5

jshell> "AAA" == "AAA"
$9 ==> true
| 已创建暂存变量 $9 : boolean

总结

JShell API 和工具提供了一种在 JShell 状态下交互式评估 Java 编程语言的声明、语句和表达式的方法。JShell 的状态包括不断发展的代码和执行状态。为了便于快速调查和编码,语句和表达式不需要出现在方法中,变量和方法也不需要出现在类中。


Java 新特性-JShell
https://blog.yohlj.cn/posts/7fb4d0bb/
作者
Enoch
发布于
2022年12月16日
许可协议