Java REPL工具 详解

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

设计理念 : 即写即得、快速运行

Java 9 中终于拥有 REPL 工具 : jShell。利用 jShell 在没有创建类的情况下直接声明变量,计算表达式,执行语句。 即开发时可以在命令行里直接运行 java 的代码,而无需创建 Java 文件, 无需跟人解释 "public static void main(String[] args)" 这句废话。jShell 也可以从文件中加载语句或者将语句保存到文件中,也可以是 tab 键进行自动补全和自动添加分号

使用 Tab 键能够帮助自动补全代码

调出 jShell
$ jshell
|  欢迎使用 JShell -- 版本 9.0.4
|  要大致了解该版本, 请键入: /help intro

获取帮助
jshell> /help intro
|  
|  intro
|  
|  使用 jshell 工具可以执行 Java 代码, 从而立即获取结果。
|  您可以输入 Java 定义 (变量, 方法, 类, 等等), 例如:  int x = 8
|  或 Java 表达式, 例如:  x + x
|  或 Java 语句或导入。
|  这些小块的 Java 代码称为 '片段'。
|  
|  这些 jshell 命令还可以让您了解和
|  控制您正在执行的操作, 例如:  /list
|  
|  有关命令的列表, 请执行: /help
jshell> /    # 显示可用指令
/!          /?          /drop       /edit       /env        /exit       
/help       /history    /imports    /list       /methods    /open       
/reload     /reset      /save       /set        /types      /vars       

<再次按 Tab 可查看提要>
注 : 在 JShell 环境下,语句末尾的 ";" 是可选的,但推荐还是最好加上,提高代码可读性

导入包
导入指定的包
jshell> import java.util.*;

# 显示默认已导入的包
jshell> /imports
|    import java.io.*
|    import java.math.*
|    import java.net.*
|    import java.nio.file.*
|    import java.util.*
|    import java.util.concurrent.*
|    import java.util.function.*
|    import java.util.prefs.*
|    import java.util.regex.*
|    import java.util.stream.*

列出当前 session 里所有有效的代码片段
jshell> /list

   1 : System.out.println("Hello,world");
   2 : int i = 10;
   3 : int j = 20;
   4 : i+j

查看当前 session 下所有创建过的变量
jshell> /vars
|    int i = 10
|    int j = 20
|    int $4 = 30

查看当前 session 下所有创建过的方法
jshell> /methods
|    void add(int,int)
注 : 还可以重新定义相同方法名和参数列表的方法,即为对现有方法的修改 (或覆盖)

使用外部代码编辑器来编写 Java 代码
jshell> /edit add

引入外部 java 文件
jshell> /open /Users/chenshun131/Desktop/AllMyFile/HelloWorld.java

没有受检异常 (编译时异常) : 本来应该强迫捕获一个 IOException,但却没有出现,因为 jShell 在后台为我们隐藏
jshell> URL url = new URL("http://www.atguigu.com");

退出 jShell
jshell> exit


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值