【Java】何为JShell?——有趣的Java学习小工具

news2024/11/18 1:41:23

前言:上一篇中我们已经看到了如何编译和运行一个Java程序。Java1.9(即Java9)中引入了另一种使用Java的方式。JShell(Java Shell)程序提供了一个“读取-计算-打印循环”(Read-Evaluate-Print Loop,REPL)。当你键入一个Java表达式;JShell会评估你的输入,打印结果,等待你的下一个输入。

因为我们已经在环境变量中将Path路径配置好了,JShell工具就包含在我们我们的bin目录下:

不懂如何配置环境变量的小伙伴可移步上一篇内容:【Java】基本概念全概述——新手入门必看

因此要启动JShell ,只需要在终端窗口中键入jshell,如图:(注意大小写!)

JShell首先向你显示一个问候语,后面是一个提示符:

|  欢迎使用 JShell -- 版本 17.0.11
|  要大致了解该版本, 请键入: /help intro


jshell>

现在我们键入一个表达式,如下:

 "Core Java".length()

JShell会回应一个结果——在这里就是字符串"Core Java"中的字符个数。

$1 ==> 9

 注意,你并没有键入System.out.println。JShell会自动打印你输入的每一个表达式的值。

输出中的$1表示整个结果可以用于将来的计算。例如:如果你键入:

5*$1-3

就会得到:

$2 ==> 42

如果需要多次使用一个变量,可以给它指定一个容易记忆的名字。不过,一定要遵循Java语法,需要同时指定类型的变量名。例如:

这里我们就成功定义了一个变量answer。

JShell另一个有用的特性是"tab补全",如果键入Math. 然后再按一次Tab键。你会得到可以在generator变量上调用所有方法的一个列表:

接着现在键入l,然后再按一次Tab键。方法名会补全为log,现在你会得到一个比较小的列表:

接下来你可以手工填入其余的部分:

要重复运行一个命令,可以连续按 “⬆”键,直到看到想要重新运行或编辑的命令行,可以用⬅和➡键移动命令行中的光标位置,然后增加或删除字符。编辑完命令后再按回车。例如,把命令行中的0.001替换为1000,然后按回车:

总结:

JShell会让Java语言和类库的学习变得轻松而有趣,它不要求你启动一个庞大的开发环境,不会让你再为public static void main而困扰。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1637408.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【综述】多核处理器芯片

文章目录 前言 Infineon处理器 AURIX™系列 TC399XX-256F300S 典型应用 开发工具 参考资料 前言 见《【综述】DSP处理器芯片》 Infineon处理器 AURIX™系列,基于TriCore内核,用于汽车和工业领域。 XMC™系列,基于ARM Cortex-M内核&…

基于 Evan_song1234 开发,MoonSpaceCat 增补的2D 我的世界,增加双缓冲实现 cmd控制台窗口或 Powershell 流畅运行

游戏玩法: awsd移动 1234567890 各有功能 t 是命令行 q 是刷新 e 是重开 z 是挖 其他还没来及探索代码 代码来源 C我的世界2D控制台版_cminecraft-CSDN博客 其中解决颜色被双缓冲刷新没的方法 参考于自己的博客 用ReadConsoleOutput 解决双缓冲ReadConsol…

短视频素材哪个App最好?短视频素材哪里有免费的?

在数字媒体的黄金时代,富有创意的视频内容已成为吸引观众的关键。高质量的视频素材不仅能增强视觉效果,还能提升整体叙述的力度。以下列出了一系列全球顶尖的视频素材提供网站,它们将为你的广告制作、社交媒体或任何视频项目提供极具影响力的…

Python制作精美表格——plottable

plottable是一个基础matplotlib的绘制精美图形表格的库。他将表格内容美化并转为一张图片 使用前提: 1、原始数据数量较少,可以一屏展示。这个库会将原始表格的所有数据都放到一个图片里,数据太多展示效果较差。 2、pandas读取时会将index列…

vue3步骤条带边框点击切换高亮

如果是div使用clip-path: polygon(0% 0%, 92% 0%, 100% 50%, 92% 100%, 0% 100%, 8% 50%);进行裁剪加边框没实现成功。目前这个使用svg完成带边框的。 形状可自行更改path 标签里的 :d“[num ! 1 ? ‘M 0 0 L 160 0 L 176 18 L 160 38 L 0 38 L 15.5 18 Z’ : ‘M 0,0 L 160,0…

飞腾D2000+X100 TYPE6全国产核心板

飞腾D2000X100 TYPE6核心板 产品概述 飞腾D2000X100 TYPE6核心板为增强型自主控制器核心板,其核心芯片CPU采用飞腾D2000/8核工业版CPU、飞腾桥片X100、双通道DDR4L插槽、PHY芯片等。 产品特点 l 基于飞腾D2000X100桥片 l 丰富的PCIE扩展资源,一路PCIE…

Java设计模式 _结构型模式_过滤器模式

一、过滤器模式 1、过滤器模式 过滤器模式(Filter Pattern)是这一种结构型设计模式。过滤器,顾名思义,就是对一组数据进行过滤,从而最终获取到我们预期的数据。 2、实现思路 (1)、定义过滤器的…

图搜索算法详解与示例代码

在计算机科学领域,图搜索算法是一类用于在图数据结构中查找特定节点或路径的算法。图搜索算法在许多领域都有着广泛的应用,包括网络路由、社交网络分析、游戏开发等。本文将详细介绍几种常见的图搜索算法,包括深度优先搜索(DFS&am…

数据结构四:线性表之带头结点的单向循环链表的设计

前面两篇介绍了线性表的顺序和链式存储结构,其中链式存储结构为单向链表(即一个方向的有限长度、不循环的链表),对于单链表,由于每个节点只存储了向后的结点的地址,到了尾巴结点就停止了向后链的操作。也就…

LeetCode 98.验证二叉搜索树

题目描述 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左 子树 只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 1&#xff…

服务端不 listen 可以创建 tcp 连接吗

这个问题有三类答案。 上来就撸 linux kernel 源码,折腾半天,哦,终于在 tcp_rcv_state_process 里找到了 tcp_rcv_synsent_state_process 调用,后者包含: if (th->syn) {/* We see SYN without ACK. It is attemp…

如何 “ 一劳永逸 ” 去掉引用网址的小尾巴

引用文章的链接时会出现很长冗余信息,删,删,删……,直到从平流层删到地平线 示例链接 使用 Neat URL(支持 google 系、Firefox)扩展中的【拦截参数】可以去除的这类百无聊赖的小尾巴。 安装后&#xff…

信创 | 信创中间件全览:核心种类与关键组件!

信创产业中的中间件主要包括基础中间件和广义中间件两大类。基础中间件包括交易中间件、消息中间件、应用服务器中间件等,而广义中间件则涵盖了更多种类的中间件产品,以适应不断变化的技术需求。 一、常用的信创中间件包含: 交易中间件&…

20232937文兆宇 2023-2024-2 《网络攻防实践》实践八报告

20232937文兆宇 2023-2024-2 《网络攻防实践》实践八报告 1.实践内容 动手实践任务一 对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下: (1&am…

Eclipse MAT工具分析内存溢出

1、通过dominator_tree可以查看哪些对象大 可以看到com.codex.terry.entity.User对象有57万个 2、打开thread_overview查看内存溢出的代码

PyVista 3D数据可视化 Python 库 简介 含源码

Pyvista是一个用于科学可视化和分析的Python库 ;我认为它适合做一些网格数据的处理; 它封装了VTK(Visualization Toolkit)之上,提供了一些高级接口, 3D数据可视化变得更加简单和易用。 1.安装 pyvista&…

表格中斜线的处理

此处的斜线,不是用表格写的,但是也适用于表格,只是需要更改表格的样式,可以 按照如下处理,即可 呈现的效果:如图所示 template部分: <div class"header_detail custom"><div class"right">节次</div><div class"left">…

YARN详解

YARN 简介 YARN 是Yet Another Resource Negotiator的缩写。 YARN是第二代MapReduce,即MRv2,是在第一代MapReduce基础上演变而来的,主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的;通俗讲就是资源管理器. YARN核心思想: 将 MR1 中资源管理和作业调度两个功能分…

Javascript:Web APIs(一)

Javascript基础&#xff08;一&#xff09; Javascript基础&#xff08;二&#xff09; Javascript基础&#xff08;三&#xff09; Javascript基础已经结束&#xff0c;接下来我们将进入到整个Web API学习中&#xff0c;在此&#xff0c;我们将学习DOM操作&#xff0c;基本的…

Linux内核之页面映射到虚拟地址:insert_page用法实例(六十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…