01 | JShell:怎么快速验证简单的小问题?
阅读案例
- 深入了解
- 翻译
- 解释
- 总结
JShell是Java的交互式编程环境,为开发者提供了快速验证和探索Java代码的便利。通过对比传统Java编译运行和bash脚本语言的效率差异,文章强调了学习效率的重要性。JShell的启动和退出方式以及提供的详尽模式和及时反馈也得到了介绍。JShell具有立即执行的特点,能够加快学习和评估简单Java代码的速度。另外,JShell支持可覆盖的声明和独立的表达式,简化了代码评估工作,提高了工作效率。文章还指出JShell并非取代IDE,对于复杂逻辑的验证,使用IDE或者可编译的代码更合适。总结来看,JShell能够极大地提高开发效率,尤其对于初学者和熟练开发者来说,都具有重要意义。
《深入剖析 Java 新特性》,新⼈⾸单¥59
全部留言(29)
- 最新
- 精选
- 星月范老师好,作为一名有些Java基础的图书策划编辑,我惦记新Java这个选题很久了哈哈,感谢您的这次课程。但我也会认真听课哒,力求为可能有的相关图书选题锦上添花!
作者回复: 出乎意料,居然有出版圈的朋友来。 谢谢来看这个专栏,希望可以帮到你。另外,现在图书编辑真是全能啊, 看得懂技术,够得着大势, 顾得上读者。
2021-11-1711 - 人要活泼些才好我把例子跟着打出来,比如那个switch,换行时会报错,这个问题大家遇到过没,我现在系统是win11,jdk11 ,求解答。
作者回复: 这是一个很好的经验啊?JDK 11报的是语法错误吗?推荐使用JDK 17来学习这个专栏。这是一个switch的新用法。switch的问题,我们会在第5和第6讲里来说。
2021-11-161411 - 黄剑豪输入一下这段代码出错的规避方法: jshell> greeting = switch (language) { ...> case "English" -> "Hello"; ...> case "Spanish" -> "Hola"; ...> case "Chinese" -> "Nihao"; ...> default -> throw new RuntimeException("Unsupported language"); ...> }; 使用/edit 命令打开编辑器,然后输入代码,保存退出后运行就没有错误了。我觉得这个是JDK17当前版本的jshell的bug。 其实复杂命令的输入都建议用编辑器编写。可以设置自己喜欢的编辑器。例如下面的命令将vscode设置为编辑器。 /set editor -retain <path-to-code> -w 进一步,可以在vscode的终端运行jshell,然后用/edit直接打开vscode打开一个窗口编辑。这样也不用来回切换终端和vscode窗口。
作者回复: 看起来是输入字符解析的bug。是的,复杂的输入使用编辑器更清晰些。
2021-11-188 - bigben有意思
作者回复: 会越来越有意思的,这一讲就是个开胃的小菜。
2021-11-164 - 都选Cjshell> String firstString= "Hello, world"; firstString ==> "Hello, world" | modified variable firstString : String | update overwrote variable firstString : String jshell> String sameString= "Hello, world"; sameString ==> "Hello, world" | modified variable sameString : String | update overwrote variable sameString : String jshell> firstString == sameString $2 ==> true | created scratch variable $2 : boolean
作者回复: 熟悉的ID啊,应该是老朋友了。
2021-11-154 - 王位庆还停留在jdk8[捂脸]
作者回复: 哈哈,老问题了。
2021-11-1544 - 3.141516话说 Java11 免费吗
作者回复: OpenJDK都是免费的。 Oracle发布的版本,JDK 17也是免费的。是不是免费这个问题,有很多误解。你可以看看我在InfoQ上写的文章(https://xie.infoq.cn/article/a72ca12f97838e16ba2c91937)。 这个文章稍微有点老了,没有反应JDK 17之后的规则,不过大致的方向没有问题。
2021-11-152 - Jxin实现层面 1.仅展示的能力来看,感觉自己实现个jshll也不难。计算逻辑直接执行字符串就能拿到结果,特殊语法就做一层识别转换,变量就自己维护个上下文。 价值层面 1.对于新手。大大降低了起手难度,而简单就意味着易于推广。虽然一门语言的获客主要还是靠市场诉求驱动,但帮助新顾客更快更舒适的着陆,确实能更好的壮大社区。新人~社区~市场诉求~新人 是一条有力的增强回路。而jshll能加速新人到社区这条连线,进而也能推动整个增强回路的运作。不过,还是得看实际推行情况。需要着力推行在面向初学者的培训机构或学校的使用上。毕竟这些机构滞后可是非常严重的,能用上8都算靠前了。 2.对于刚入门的。语法上的模糊可以借助其快速验证,有利于更快的熟练语法。 3.对于老手。新语言特性可以在这个上面验证。就是还是太局限。稍微复杂点的验证都不适用。基本只能验证某些类库的函数方法的单一效果,或则某些语法单一的效果。反正我的话多半走单测,虽然不即时,但写起来快呀。 展望 1.能否连上本地java进程呢?能的话抛开安全因素,其实可以做很多东西。
作者回复: "需要着力推行在面向初学者的培训机构或学校的使用上",如果教育和图书能够先行起来,对Java的发展会有巨大的推动。
2021-11-171 - 注定非凡真是有趣的新特性,确实有很长一段时间没有关注JAVA的新特性了
作者回复: 快来一起学...
2021-11-171 - will老师,github连接在哪呢?
作者回复: 每一讲的末尾,都有一个注。 说的就是GitHub的链接, 和PR请求提交的目录。
2021-11-161