java9新特性-5-Java的REPL工具: jShell命令

2019-07-04 00:00:00 新特性 Java9

1.官方Feature

222: jshell: The Java Shell (Read-Eval-Print Loop)

2.产生背景

像Python 和 Scala 之类的语言早就有交互式编程环境 REPL (read – evaluate – print – loop)了,以交互式的方式对语句和表达式进行求值。开发者只需要输入一些代码,就可以在编译前获得对程序的反馈。而之前的Java版本要想执行代码,必须创建文件、声明类、提供测试方法方可实现。

3.设计理念

即写即得、快速运行

4.实现目标

Java 9 中终于拥有了 REPL工具:jShell。利用jShell在没有创建类的情况下直接声明变量,计算表达式,执行语句。即开发时可以在命令行里直接运行java的代码,而无需创建Java文件,无需跟人解释”public static void main(String[] args)”这句废话。

jShell也可以从文件中加载语句或者将语句保存到文件中。

jShell也可以是tab键进行自动补全和自动添加分号。

5.使用举例

调出jShell

《java9新特性-5-Java的REPL工具: jShell命令》

获取帮助

《java9新特性-5-Java的REPL工具: jShell命令》
《java9新特性-5-Java的REPL工具: jShell命令》

基本使用

《java9新特性-5-Java的REPL工具: jShell命令》
《java9新特性-5-Java的REPL工具: jShell命令》
《java9新特性-5-Java的REPL工具: jShell命令》

Tips:在JShell 环境下,语句末尾的“;” 是可选的。但推荐还是最好加上。提高代码可读性。

导入指定的包

《java9新特性-5-Java的REPL工具: jShell命令》

默认已经导入如下的所有包:(包含java.lang包)

《java9新特性-5-Java的REPL工具: jShell命令》

只需按下 Tab 键,就能自动补全代码

《java9新特性-5-Java的REPL工具: jShell命令》
《java9新特性-5-Java的REPL工具: jShell命令》

列出当前 session 里所有有效的代码片段

《java9新特性-5-Java的REPL工具: jShell命令》

查看当前 session 下所有创建过的变量

《java9新特性-5-Java的REPL工具: jShell命令》

查看当前 session 下所有创建过的方法

《java9新特性-5-Java的REPL工具: jShell命令》

Tips:我们还可以重新定义相同方法名和参数列表的方法,即为对现有方法的修改(或覆盖)。

使用外部代码编辑器来编写 Java 代码

《java9新特性-5-Java的REPL工具: jShell命令》

从外部文件加载源代码

指定目录下提供HelloWorld.java文件:

《java9新特性-5-Java的REPL工具: jShell命令》
《java9新特性-5-Java的REPL工具: jShell命令》

使用/open命令调用:

《java9新特性-5-Java的REPL工具: jShell命令》

没有受检异常(编译时异常)

《java9新特性-5-Java的REPL工具: jShell命令》
《java9新特性-5-Java的REPL工具: jShell命令》

说明:本来应该强迫我们捕获一个IOException,但却没有出现。因为jShell在后台为我们隐藏了。

退出jShell

《java9新特性-5-Java的REPL工具: jShell命令》

    原文作者:硅谷面试官宋红康
    原文地址: https://zhuanlan.zhihu.com/p/32536188
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

相关文章