【JAVA】JShell(交互式编程工具)

JShell(交互式编程工具)

Java 9 引入了 JShell,这是 Java 的交互式编程工具(REPL: Read-Eval-Print Loop)。JShell 允许开发者在不创建完整 Java 项目的情况下,直接编写并执行 Java 代码片段。这使得学习和测试 Java 代码变得更加高效和直观。

1. 启动和退出 JShell

  • 启动 JShell: 在命令行中输入 jshell 命令即可启动 JShell。
  • 退出 JShell: 输入 /exit 或者按 Ctrl+D 可以退出 JShell。
$ jshell  # 启动 JShell
|  欢迎使用 JShell -- 版本 9
|  输入: /help 获取键入提示
jshell> /exit  # 退出 JShell

2. 编写和执行代码

在 JShell 中,可以直接输入 Java 代码并立即执行,无需编译整个项目。支持变量声明、表达式、方法、类等。

jshell> int x = 10; // 声明并初始化一个整数变量 x
x ==> 10

jshell> x + 5;  // 计算表达式 x + 5 的结果
$2 ==> 15

jshell> String message = "Hello, JShell!"; // 声明并初始化字符串变量
message ==> "Hello, JShell!"

jshell> System.out.println(message);  // 打印消息
Hello, JShell!

3. 查看变量和方法

JShell 提供了命令来查看已经定义的变量和方法。

  • 查看所有变量: 使用 /vars 命令。
  • 查看所有方法: 使用 /methods 命令。
jshell> /vars  // 查看当前所有变量
|    int x = 10
|    String message = "Hello, JShell!"

jshell> /methods  // 查看当前所有方法
|

4. 编辑代码片段

JShell 支持编辑已经定义的代码片段。使用 /edit 可以编辑变量、方法或者类。

jshell> int y = 20;  // 声明并初始化变量 y
y ==> 20

jshell> /edit y  // 编辑变量 y

5. 保存和加载会话

可以将当前的 JShell 会话保存到文件中,稍后可以重新加载会话。

  • 保存会话: 使用 /save 命令。
  • 加载会话: 使用 /open 命令。
jshell> /save session.jsh  // 保存当前会话到文件 session.jsh
jshell> /exit  // 退出 JShell

$ jshell session.jsh  // 加载保存的会话

6. 导入包和使用库

JShell 支持导入外部库,可以通过 import 语句来导入 Java 标准库或自定义库。

jshell> import java.util.*;  // 导入 Java 的 util 包

jshell> List<String> list = new ArrayList<>();  // 创建一个 ArrayList 对象
list ==> []

jshell> list.add("JShell");  // 向列表中添加元素
$3 ==> true

jshell> list.add("is cool!");  // 向列表中添加另一个元素
$4 ==> true

jshell> System.out.println(list);  // 打印列表
[JShell, is cool!]

7. 定义和调用方法

可以在 JShell 中直接定义方法,然后立即调用。

jshell> int add(int a, int b) {  // 定义一个方法来计算两个整数的和
   ...> return a + b; 
   ...> } 
|  创建方法 add(int, int)

jshell> add(5, 10);  // 调用 add 方法
$5 ==> 15

8. 自定义类和使用

JShell 支持定义类和对象,使得可以在交互式环境中进行复杂的面向对象编程。

jshell> class Person {  // 定义一个 Person 类
   ...> String name;
   ...> int age;
   ...> 
   ...> Person(String name, int age) {
   ...> this.name = name;
   ...> this.age = age;
   ...> }
   ...> 
   ...> String getInfo() {
   ...> return "Name: " + name + ", Age: " + age;
   ...> }
   ...> } 
|  创建类 Person

jshell> Person p = new Person("Alice", 30);  // 创建一个 Person 对象
p ==> Person@6d6f6e28

jshell> p.getInfo();  // 调用 getInfo 方法
$6 ==> "Name: Alice, Age: 30"

9. 快捷命令和帮助

  • /help: 显示帮助信息。
  • /reset: 重置 JShell 会话,清除所有已定义的变量、方法和类。
  • /list: 列出所有输入的代码片段。
  • /history: 显示历史命令。
jshell> /help  // 获取帮助信息

总结

JShell 是 Java 9 引入的一个强大工具,尤其适合于快速测试和学习 Java 代码。它提供了一个简洁、互动的环境,使开发者能够快速编写、测试和迭代 Java 代码,而无需创建完整的项目。这对于学习、调试和原型开发非常有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值