jshell  在我眼里,只能作为学校教学的一个玩具,事实上官方也做了解释,以下是官方的解释:

在学习编程语言时,即时反馈很重要,并且 它的 API。学校引用远离Java的首要原因 教学语言是其他语言有一个“REPL”并且要低得多 禁止初始程序。读取-评估-打印循环 (REPL) 是一个交互式编程工具,它循环,不断读取用户输入, 评估输入,并打印输入的值或描述 状态更改导致的输入。Scala, Ruby, JavaScript, Haskell,Clojure和Python都有REPL,并且都允许小的首字母 程序。JShell 为 Java 平台添加了 REPL 功能。"Hello, world!"

探索编码选项对开发人员也很重要 原型代码或调查新的 API。交互式评估是 在这方面比编辑/编译/执行和.System.out.println

没有仪式,学习和探索是精简的。class Foo { public static void main(String[] args) { ... } }

在我看来,很鸡肋,一、是因为其终端输入和编写的不便

                                二、则是在我看来,也就是引起别人学习java的小玩意

接下来,我将举个例子:

jshell>  System.out.println("sb");
sb

jshell> Math.sqrt(89);
$4 ==> 9.433981132056603

jvm的jshell,学生的工具-LMLPHP

可以看出,能够执行片段代码

jshell> class foo{
   ...>     public static void main(String[] args){
   ...>         System.out.println("sb");
   ...>     }
   ...> }
|  已创建 类 foo

jvm的jshell,学生的工具-LMLPHP

也是可以创建类的。

如何调用?

jshell> class foo{
   ...>     public  void sb(){
   ...>         System.out.println("sb");
   ...>     }
   ...> }
|  已替换 类 foo
|    更新已替换 变量 a, 重置为空值

jshell> foo a=new foo();
a ==> foo@4d76f3f8

jshell> a.sb();
sb

jvm的jshell,学生的工具-LMLPHP

10-21 03:56