java9新功能-jshell

JShell 是 Java 9 引入的一个交互式编程工具,它是 Java 的 REPL(Read-Eval-Print Loop)实现。REPL 是一种简单的、交互式的编程环境,允许开发者在不编写完整的 Java 类和方法的情况下,快速编写和测试代码片段。这对于学习、实验和快速原型设计非常有用。

基本用法

  • 启动 JShell
    在终端或命令提示符下输入jshell即可启动,启动后会看到类似于以下的提示符。


    图1
  • 输入表达式


    图2
  • 声明变量


    图3
  • 声明方法


    图4
  • 查看变量和方法


    图5

常用命令

  • /help:显示帮助信息。
  • /exit:退出 JShell。
  • /list:列出会话中输入的所有代码片段。
  • /edit:编辑先前的代码片段。
  • /reset:重置会话,清除所有定义的变量、方法和类。
  • /vars:显示当前会话中的所有变量。
  • /methods:显示当前会话中的所有方法。
  • /classes:显示当前会话中的所有类。
  • /save:保存当前会话到文件。
  • /open:从文件中加载会话。

优点和不足

JShell 作为一个交互式编程工具,具有许多优点,如即时反馈、简化语法和方便的会话管理,我简单总结了以下部分:

  • 即时反馈

    JShell 提供了 REPL(Read-Eval-Print Loop)环境,允许开发者在输入代码后立即看到结果。这有助于快速调试和验证代码片段。

  • 简化语法

    开发者可以在不需要编写完整类和方法的情况下,直接编写和执行 Java 代码片段。这使得实验和测试变得更加简单和快捷。

  • 学习和教学工具

    JShell 是学习和教学 Java 的理想工具。初学者可以通过交互式编程环境快速了解和掌握 Java 语言的基本概念。

  • 快速原型设计

    开发者可以使用 JShell 进行快速原型设计和探索,测试新的想法和代码逻辑,而无需创建完整的项目或类结构。

以上介绍了jshell的一些优势,但是在一些复杂的项目场景下,jshell也存在很多不足,比如无法进行深入的开发和调试,仍然需要借助传统的开发工具和构建系统,主要体现在以下方面

  • 不适用于复杂项目

    JShell 适用于测试和实验小段代码,不适合管理和开发大型、复杂的 Java 项目。对于完整的应用开发,仍然需要使用传统的开发工具和构建系统(如 IDE 和 Maven/Gradle)。

  • 有限的调试功能

    尽管 JShell 提供了基本的错误提示和反馈,但其调试功能相对有限。对于深入的调试和性能分析,仍然需要使用专业的调试工具。

  • 性能限制

    JShell 在处理大型数据集和复杂计算时,可能表现出性能问题。它更适合于小规模的测试和验证。

  • 依赖管理

    JShell 对于外部库和依赖的管理不如 Maven 或 Gradle 方便。尽管可以通过类路径(classpath)加载外部库,但这种方式在管理复杂依赖时不够高效。

  • 缺乏完整的 IDE 功能

    与成熟的 IDE(如 IntelliJ IDEA、Eclipse)相比,JShell 缺乏代码补全、重构和代码导航等高级功能。对于大型项目开发,这些功能是不可或缺的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容