五分钟了解 JShell

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(252)   2024-01-13 07:14:57

这篇博文以我的我的主要 Java 9 特性 博文为基础,更深入地研究了这些特性。在这里,我们将向您展示如何在五分钟内学会 jshell,并提升您的 Java 9 开发体验。

入门

假设您已经下载,并安装了 Java 9,那么您可以通过键入以下命令启动 shell:

	
jshell

或者如果你想要冗长 -

C:\jdk9TestGround>jshell -v
| Welcome to JShell -- Version 9
| For an introduction type: /help intro
 
jshell>

变量

只需键入变量,带或不带分号 –

jshell> int i = 1;
i ==> 1
| created variable i : int

未分配的值会自动分配给以 $ 开头的变量 –

jshell> "Hello World"
$1 ==> "Hello World"
| created scratch variable $1 : String

这意味着我们可以稍后重用该值 -

jshell> System.out.println($1);
Hello World

控制流程

jshell 的下一步是使用控制流(for、if、while、...)。我们可以通过输入我们的条件来做到这一点,对每一行使用 return –

jshell> if ("Hello World".equals($1)) {
 ...> System.out.println("Woohoo my if condition works");
 ...> }
Woohoo my if condition works

一个快速提示是使用 TAB 来完成代码

方法

我们可以像Flow control一样声明一个方法,然后按

对于每一行 -

jshell> String helloWorld() {
 ...> return "hello world";
 ...> }
| created method helloWorld()

然后调用它——

jshell> System.out.println(helloWorld());
hello world

我们还可以更改 shell 中的方法,并让方法调用尚未定义的方法——

jshell> String helloWorld() {
 ...> return forwardReferencing();
 ...> }
| modified method helloWorld(), however, it cannot be invoked until method forwardReferencing() is declared
| update overwrote method helloWorld()

现在我们修复方法 -

jshell> String forwardReferencing() {
 ...> return "forwardReferencing";
 ...> }
| created method forwardReferencing()
| update modified method helloWorld()

班级

我们也可以在jshell中定义类——

jshell> class HelloWorld {
 ...> public String helloWorldClass() {
 ...> return "helloWorldClass";
 ...> }
 ...> }
| created class HelloWorld

并分配和访问它们——

/env

有用的命令

现在我们已经掌握了基础知识,这里有一些快速命令 –

标签 代码补全
/变量 当前shell中的变量列表
/方法 当前shell中的方法列表
/列表 jshell会话中的所有代码片段
/导入 shell 中的当前导入
/方法 当前shell中的方法列表
/类型 shell 中定义的当前类,在上面的例子中我们会看到“class HelloWorld”
/编辑 允许您在编辑器中编辑会话(默认为 JEditPad)
/退出 关闭会话
标签2: Java教程
地址:https://www.cundage.com/article/jcg-jshell-five-minutes.html

相关阅读

Java HashSet 教程展示了如何使用 Java HashSet 集合。 Java哈希集 HashSet 是一个不包含重复元素的集合。此类为基本操作(添加、删除、包含和大小)提供恒定时间性...
SpringApplicationBuilder 教程展示了如何使用 SpringApplicationBuilder 创建一个简单的 Spring Boot 应用程序。 春天 是用于创建企业应...
通道是继 buffers 之后 java.nio 的第二个主要新增内容,我们在之前的教程中已经详细了解了这一点。通道提供与 I/O 服务的直接连接。 通道是一种在字节缓冲区和通道另一端的实体(通...
课程大纲 Elasticsearch 是一个基于 Lucene 的搜索引擎。它提供了一个分布式的、支持多租户的全文搜索引擎,带有 HTTP Web 界面和无模式的 JSON 文档。 Elasti...
解析器是强大的工具,使用 ANTLR 可以编写可用于多种不同语言的各种解析器。 在这个完整的教程中,我们将: 解释基础:什么是解析器,它可以用来做什么 查看如何设置 ANTLR 以便在 Java...
Java 是用于开发各种桌面应用程序、Web 应用程序和移动应用程序的最流行的编程语言之一。以下文章将帮助您快速熟悉 Java 语言,并迈向 API 和云开发等更复杂的概念。 1. Java语言...
Java中的继承是指子类继承或获取父类的所有非私有属性和行为的能力。继承是面向对象编程的四大支柱之一,用于提高层次结构中类之间的代码可重用性。 在本教程中,我们将了解 Java 支持的继承类型,...
Java Message Service 是一种支持正式通信的 API,称为 网络上计算机之间的消息传递。 JMS 为支持 Java 程序的标准消息协议和消息服务提供了一个通用接口。 JMS 提...
之前,我介绍了spring 3 + hibernate 集成 示例和struts 2 hello world 示例。在本教程中,我将讨论在将 spring 框架与 struts 与 hibern...
Java 项目中的一项常见任务是将日期格式化或解析为字符串,反之亦然。解析日期意味着你有一个代表日期的字符串,例如“2017-08-3”,你想把它转换成一个代表 Java 中日期的对象,例如Ja...