前言:
JShell脚本工具是JDK9的新特性,估计是一直被诟病只要打印个helloworld也要创建一个类,再写个psvm方法太麻烦,所以研发了这个玩意。
简介:
Java Shell工具(JShell)是一个用于学习Java编程语言和Java代码原型的交互式工具。JShell是一个Read-Evaluate-Print循环(REPL),它在输入时评估声明,语句和表达式,并立即显示结果。该工具从命令行运行。
使用方法:
1. 启动和退出
使用JShell需要配置好java的环境变量。
启动:在DOS命令行输入jshell命令。
jshell
要以详细模式启动JShell,请使用以下-v选项:
jshell -v
退出:
/exit
运行代码片段
使用详细选项启动JShell以获得最大可用反馈量:
jshell -v
| 欢迎使用 JShell -- 版本 11.0.2
| 要大致了解该版本, 请键入: /help intro
可参考文章:JShell 工具
JShell工具的更多使用方法,请参照官方示例:https://docs.oracle.com/javase/9/jshell/
编译器的两点优化:
注意事项1:
对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围,那么javac编译器将会自动隐含的为我们补上一个(byte)(bshort)(char)
如果没有超过左侧的范围,编译器补上强转。
如果右侧超过了左侧范围,那么编译器直接报错。
示例代码:
注意事项2:
再给变量进行赋值的时候,如果右侧的表达式中全部都是常量,没有任何变量,
那么编译器javac将会直接将若干个常量表达式计算得到结果。
short result =5+8; 等号左边全都是常量,没有任何变量参与运算
编译之后得到的字节码文件中的结果直接就是13
右侧的常量结果数值,没有超过左侧范围,所以正确。
这称为编译器的常量优化。
但是需要注意的是:一旦表达式中有常量参与,那么就不能进行这种优化了。
示例代码: