java9 jshell示例
本教程介绍如何在Java9中使用JShell工具
JShell工具,也称为REPL(Read Evaluate Print Loop),允许我们执行Java代码,立即获得结果。我们可以快速计算表达式或者简短算法,而无需创建、编译或者构建新项目。在JShell的帮助下,我们可以执行表达式、使用导入、定义类、方法和变量以及使用导入。请注意,JRE不是JRE的一部分。
启动JShell
打开控制台或者终端(取决于操作系统)。浏览到Java9JDK安装文件夹,然后
cd
进入/bin文件夹。运行jshell可执行文件-jshell.exe文件如果我们运行的是Windows操作系统
简单的算术运算
使用JShell,我们可以通过将它们作为数学表达式输入来轻松测试算术运算。下面的例子演示了这个概念。不需要在行尾加分号(;)
注意输出37/2=18. 之所以会出现这种情况,是因为JShell将37视为整数,因此结果被强制转换为(int)。在37上加一个小数点将产生一个双精度结果
JShell内部变量
JShell通过打印输入的结果给我们立即的反馈。例如:
jshell> 1 + 3 ==> 4
表达式1+3得到4. JShell还将这个值赋给一个内部变量 $1。进一步的命令被分配给增量的$变量,如$2、$3等。
下面的屏幕截图演示了JShell内部变量的用法:
jshell内部变量
通过键入内部变量的名称,可以打印内部变量的值:
jshell> ==> 4
我们可以为内部变量指定一个新值:
jshell> = 20 ==> 20
表达式1+3生成一个整数,对吗?那么,如果你试图给不同类型的内部变量赋值,会发生什么呢?让我们尝试为$1变量指定一个15.8的双精度值
jshell> = 15.8
正如我们在上面的屏幕截图中所看到的,这将解析为“不兼容类型错误”。一旦创建了内部变量,就不能再更改类型了。
内部变量不仅用于存储基元类型。它们也可以处理对象。在下面的示例中,我们创建字符串类型的内部变量:
jshell> new String("Hello") ==> "Hello"
JShell自动完成
JShell有一个内置的自动完成特性(也称为Tab完成特性),它允许我们通过只按Tab键来最小化键入。开始键入并按Tab键。这将完成我们开始键入的单词(如果只有一个选项可用)或者显示可能选项的列表。看看下面的例子。我们开始键入“Str”并按Tab键:
JShell定制进口
默认情况下,在JShell中导入以下包:
java.io.*
java.math.*
java.net.*
java.nio.file.*
java.util.*
java.util.concurrent.*
java.util.function.*
java.util.prefs.*
java.util.regex.*
java.util.stream.*
*提示:*我们可以使用/imports命令列出导入
我们可以轻松地导入包,这些包是javase的一部分。如果我们正在寻找一个包名,请查看官方的java9sejavadoc站点
下面的示例演示如何导入 java.time创建一个新的LocalDate对象
JShell示例程序
测试List reverse方法的典型Java类如下所示:
import java.util.Arrays; import java.util.Collections; import java.util.List; public class ListUtils { public static void main(String[] args) { List<String> list = Arrays.asList("A", "B", "C"); System.out.println(reverse(list)); } public static List<String> reverse(List<String> list) { List<String> listCopy = list.subList(0, list.size()); Collections.reverse(listCopy); return listCopy; } }
上面显示的代码有imports、main方法和System.out.println()以显示结果。我们可以跳过JShell中的所有3个。这就是我们如何使用JShell测试相同的功能:
jshell示例
正如我们在上面的示例中所注意到的,我们像往常一样创建类。此外,我们的输入列表是在类之外创建的。查看创建列表后的立即输出,显示其值
list ==> [A, B, C]
现在我们只调用类中的实用方法
jshell> ListUtils.reverse(list)
并显示结果输出:
==> [C, B, A]
如何退出JShell
我们可以随时通过键入
jshell> /exit
或者按Ctrl+C