什么是交互式编程环境?关键词交互,在这样的编程环境中,你每输入一行代码,环境都会给你一个反馈,这是一个交互的编程环境。这种编程环境不太适合工程的复杂需求,但在一些快速验证、简单计算等场景下还是非常好用的。其实交互式编程环境在其他高级语言中早就存在了,只是Java直到Java9才正式推出这样的工具。下面我们一起来学习一下,Java中的交互式编程环境JShell。JShell快速入门本视频:7分钟学会使用Java的交互式编程环境jshell启动JShell打开终端,然后执行命令:jshell,执行效果如下:?~jshell|欢迎使用JShell——第9版|要大致了解这个Version,请输入:/helpintrojshell>Executecalculation在jshell中可以快速进行计算操作并得到结果,例如:jshell>1+2$1==>3Definevariables你也可以定义jshell中的变量和函数,比如,可以这样定义变量并进行计算:jshell>inta=1,b=2;a==>1b==>2jshell>intc=a+bc==>3在jshell中定义函数也可以通过函数来??封装操作,例如下面是定义一个sum函数并调用它的例子:jshell>intsum(inta,intb){...>returna+b;...>}|createdmethodsum(int,int)jshell>intc=sum(1,2)c==>3定义类在jshell中,也可以定义一些简单的类,如:jshell>publicclassCalculate{...>...>公共诠释;...>公共整数b;...>...>publicintsum(){...>返回a+b;...>}...>}|创建类Calculatejshell>计算c=newCalculate();c==>Calculate@4fca772djshell>c.a=1$9==>1jshell>c.b=2$10==>2jshell>c.sum()$11==>3当然,这种场景其实比较复杂,这里是实际上是用Java16中的新记录实现的如果是现在,会更简单实用。类型Java语言表达式、语句或语句。|或键入以下命令之一:|/list[|-all|-start]|列出您输入的来源|/edit<名称或ID>|编辑源条目|/drop<名称或ID>|删除源条目|/save[-all|-history|-start]<文件>|将片段源保存到文件|/打开<文件>|打开文件作为源输入|/vars[<名称或ID>|-全部|-开始]|列出声明的变量及其值|/methods[<名称或ID>|-all|-start]|列出声明的方法及其签名|/types[<名称或ID>|-全部|-开始]|列表类型声明|/进口|列出进口物品|/exit[<整数表达式片段>]|退出jshell工具|/env[-class-path<路径>][-module-path<路径>][-add-modules<模块>]...|查看或更改评估上下文|/reset[-class-path][-module-path][-add-modules]...|重置jshell工具|/reload[-restore][-quiet][-class-path][-module-path]...|放相关历史--当前历史或以前历史(-restore)|/历史[-全部]|你输入的历史|/help[<命令>|<主题>]|工具信息|/seteditor|start|feedback|mode|提示|截断|格式...|设置配置信息|/?[<命令>|<主题>]|获取有关使用jshell工具的信息|/!|重新运行最后一个片段——参见/helprerun|/<编号>|按ID或ID范围重新运行片段--请参阅/helprerun|/-|重新运行之前的第n个片段——参见/helprerun||有关详细信息,请输入“/help”,然后输入|命令或主题的名称|例如“/help/list”或“/helpintro”。主题:||简介|jshell工具介绍|钥匙|readline-like输入编辑的描述|编号|代码段ID的说明以及如何使用它们|捷径||语境|/env/reload和/reset的评估上下文选项的描述|重新运行|重新评估先前输入的片段的方法说明jshell>/help|键入Java语言表达式、语句或语句。|或键入以下命令之一:|/list[|-all|-start]|列出您输入的来源|/edit<名称或ID>|编辑源条目|/drop<名称或ID>|删除源条目|/save[-all|-history|-start]<文件>|将片段源保存到文件|/打开<文件>|打开文件作为源输入|/vars[<名称或ID>|-全部|-开始]|列出声明的变量及其值|/methods[<名称或ID>|-all|-start]|列出声明的方法及其签名|/types[<名称或ID>|-全部|-开始]|列表类型声明|/进口|列出进口物品|/exit[<整数表达式片段>]|退出jshell工具|/env[-class-path<路径>][-module-path<路径>][-add-modules<模块>]...|查看或更改评估上下文|/reset[-class-path][-module-path][-add-modules]...|重置jshell工具|/reload[-restore][-quiet][-class-path][-module-path]...|放相关历史--当前历史或以前历史(-restore)|/历史[-全部]|你输入的历史|/help[<命令>|<主题>]|工具信息|/seteditor|start|feedback|mode|提示|截断|格式...|设置配置信息|/?[<命令>|<主题>]|获取有关使用jshell工具的信息|/!|重新运行最后一个片段——参见/helprerun|/<编号>|按ID或ID范围重新运行片段--请参阅/helprerun|/-|重新运行之前的第n个片段——参见/helprerun||有关详细信息,请输入“/help”,然后输入|命令或主题的名称|例如“/help/list”或“/helpintro”。主题:||简介|jshell工具介绍|钥匙|readline-like输入编辑的描述|编号|代码段ID的说明以及如何使用它们|捷径||语境|/env/reload和/reset的评估上下文选项的描述|重新运行|重新评估先前输入的片段的方法的描述参见定义的函数:/methodsjshell>/methods|intsum(int,int)查看定义的变量:/varsjshell>/vars|整数$1=3|整数b=2|计算c=Calculate@4fca772d|整数$9=1|整数$10=2|整数$11=3|int$13=3Listinputsourceentries:/list执行后可以看到jshell中输入的内容列表:jshell>/list1:1+23:inta=1,b=2;5:intsum(inta,intb){返回a+b;}7:publicclassCalculate{publicinta;公共诠释b;publicintsum(){返回a+b;}}8:计算c=newCalculate();9:c.a=110:c.b=211:c.sum()12:Mapa=newHashMap();左边的数字是条目id,可以用来编辑和删除源条目:/edit通过/list列出输入的条目信息,尝试通过/edit编辑,例如:jshell>/edit7这时会弹出一个修改框:Aftermodified完成后点击accept删除sourceentry:/drop/drop命令可以用来删除某一个sourceentry,比如我们可以用下面的命令删除id为12的行Mapa=newHashMap();jshell>/下降12|可以看到删除的变量a。执行后也会提示:定义的Map类型的变量a已删除保存文件:/save如果要保存本次编辑的内容,以便在其他环境执行,或者继续下次使用,可以通过/save保存到文件中,例如:jshell>/saveaaa.txt打开文件:/open当我们改变jshell环境时,可以打开之前保存的文件来快速恢复之前执行的内容,比如:jshell>/openaaa.txtresetjshell:/reset当我们要改写一个内容的时候,需要清除之前执行的条目(清除/list的内容),这个时候可以这样做是这样的:jshell>/reset|正在重置状态。查看导入的包:/importsjshell>/imports|导入java.io.*|导入java.math.*|导入java.net.*|导入java.nio.file.*|导入java.util.*|导入java.util.concurrent.*|导入java.util.function.*|导入java.util.prefs.*|导入java.util.regex.*|importjava.util.stream.*查看定义的类:/typesjshell>/types|类计算退出jshell:/exitjshell>/exit|再见好了,今天的分享就到这里啦!如果你在学习过程中遇到困难?您可以加入我们超优质的技术交流群,参与交流讨论,更好的学习进步!还有,别走,跟我走!持续更新Java新特性专栏!欢迎来到我的公众号:程序员DD。第一时间了解行业前沿资讯,分享深度技术干货,获取优质学习资源