适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗.

Java新特性之JShell

1|0为什么我们要了解JShell

我们学习Java语言的第一个程序通常为打印一行Hello World。代码通常如下

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world!"); } }

然后我们使用javac命令来编译java文件

javac HelloWorld.java

编译完成后我们需要使用java命令来执行编译好的字节码文件,把程序结果打印出来

java HelloWorld

最后我们可以看到运行结果

Hello, world!

到此我们完成了Java的第一个程序,看着还不错,不过我们对比一下使用bash打印Hello World的例子

$ echo Hello, world!

回车之后我们就可以看到运行结果

Hello, world!

显然,使用 bash 编写的“Hello, world!”要简单得多。你只需要在命令行输入代码,bash 就会自动检查语法,立即打印出结果;它不需要我们调用额外的编辑器、编译器以及解释器。当然,这并不是说 bash 不需要编译和运行过程。bash 只是把这些过程处理得自动化了,不再需要我们手动处理了。

Java学习的这种“门槛”极大的影响了学习Java的热情,那么Java有没有一种方式可以达到bash的这种效果了。

答案是肯定的,JShell,也就是 Java 的交互式编程环境,是 Java 语言给出的其中一个答案。

2|0JShell使用

2|1启动JShell

$ jshell | Welcome to JShell -- Version 17 | For an introduction type: /help intro jshell>

JShell 的交互式编程环境,还有一个详细模式,能够提供更多的反馈结果。启用这个详尽模式的办法,就是使用“-v”这个命令行参数。我们使用 JShell 工具的主要目的之一,就是运行测试我们编写的代码片段

$ jshell -v | Welcome to JShell -- Version 17 | For an introduction type: /help intro

2|2退出 JShell

jshell> /exit | Goodbye

2|3帮助命令

jshell> /help | Type a Java language expression, statement, or declaration. | Or type one of the following commands: | /list [<name or id>|-all|-start] | list the source you have typed ... snipped ... | /help [<command>|<subject>] | get information about using the jshell tool ... snipped ...

输入该命令可以查看JShell支持的命令,熟悉 JShell 支持的命令,能给我们带来很大的便利

2|4执行Java语句

jshell> System.out.print("Hello, world!"); Hello, world! jshell>

可以看到,一旦输入完成,JShell 立即就能返回执行的结果,而不再需要编辑器、编译器、解释器。

如果我们使用了错误的方法,或者不合法的语法,JShell 也能立即给出提示。

jshell> System.out.println("Hello, world\!"); | Error: | illegal escape character | System.out.println("Hello, world\!"); | ^

JShell 的这种立即执行、及时反馈的特点,毫无疑问地,加快了我们学习和测试简单 Java 代码的速度,激励着我们去学习更多的东西,更深入的技能。

2|5可覆盖的变量声明

jshell> String greeting; greeting ==> null | created variable greeting : String jshell> String greeting = "Hola"; greeting ==> "Hola" | modified variable greeting : String | update overwrote variable greeting : String jshell> Integer greeting; greeting ==> null | replaced variable greeting : Integer | update overwrote variable greeting : String

变量的声明可以重复,也可以转换类型,就像上一个声明并不存在一样。这样的特点和 Java 的可编译代码有所不同,在可编译的代码里,在一个变量的作用域内,这个变量的类型是不允许转变的,也不允许重复声明。

2|6独立的表达式

我们知道,在 Java 程序里,语句是最小的可执行单位,表达式并不能单独存在。但是,JShell 却支持表达式的输入。比如说,输入“1+1”,JShell 会直接给出正确的结果。

jshell> 1 + 1 $1 ==> 2 | created scratch variable $1 : int

3|0特别说明

JShell 的设计并不是为了取代 IDE。JShell 在处理简单的小逻辑,验证简单的小问题时,比 IDE 更有效率。如果我们能够在有限的几行代码中,把要验证的问题表达清楚,JShell 就能够快速地给出计算的结果。这一点,能够极大地提高我们的工作效率和学习热情。


__EOF__

本文作者ycwiacb
本文链接https://www.cnblogs.com/ycwiacb/p/15919037.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ycwiacb  阅读(221)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示