日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JShell 详解

發布時間:2023/12/3 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JShell 详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、簡介
  • 二、為什么使用 JShell
  • 三、參考示例
    • 啟動 JShell
    • 退出 JShell
    • 聲明定義基本類型的變量
    • 聲明定義一個方法
    • 覆蓋已存在的變量、方法、類的定義
    • 查看 JShell 默認導入的包
    • 自動補全功能
    • 列出所有鍵入的源
    • 列出已聲明方法及其簽名
    • 加載外部的源代碼
    • 查看 JShell 提供的所有指令
    • 將你輸入的歷史代碼片段保存到文件中

一、簡介

JShell(Java Shell)工具是 JDK1.9 出現的工具, JShell 是一個用于學習 Java 編程語言和 Java 代碼原型的交互式工具。JShell 是交互式 REPL(Read-Evaluate-Print Loop,讀取-求值-輸出 循環)工具。它在輸入時評估聲明,語句和表達式,并立即顯示結果。

可以在命令終端輸入下面的命令查看 JShell 簡介:

jshell> /help intro | | intro | | 使用 jshell 工具可以執行 Java 代碼, 從而立即獲取結果。 | 您可以輸入 Java 定義 (變量, 方法, 類, 等等), 例如: int x = 8 | 或 Java 表達式, 例如: x + x | 或 Java 語句或導入。 | 這些小塊的 Java 代碼稱為 '片段'| | 這些 jshell 命令還可以讓您了解和 | 控制您正在執行的操作, 例如: /list | | 有關命令的列表, 請執行: /help

簡而言之,使用 JShell,你可以輸入代碼片段并馬上看到運行結果,然后就可以根據需要作出調整。

二、為什么使用 JShell

使用JShell,您可以一次輸入一個程序元素,立即查看結果,并根據需要進行調整。

Java程序開發通常涉及以下過程:

編寫程序代碼
編譯程序
修復編譯錯誤
編譯程序
運行程序
重復以上過程…

JShell 可幫助您在開發程序時嘗試代碼并輕松探索選項。您可以測試單個語句,嘗試不同的方法變體,并在 JShell 會話中試驗不熟悉的API。JShell 不替換 IDE。在開發程序時,將代碼粘貼到 JShell 中進行試用,然后將 JShell 中的工作代碼粘貼到程序編輯器或 IDE 中。

三、參考示例

啟動 JShell

liaowenxiongdeMacBook-Air:~ liaowenxiong$ jshell | 歡迎使用 JShell -- 版本 9.0.4 | 要大致了解該版本, 請鍵入: /help introjshell>

退出 JShell

jshell> /exit | 再見

聲明定義基本類型的變量

jshell> int x = 45 x ==> 45 | 已創建 變量 x : int

聲明定義一個方法

jshell> String twice(String s) {...> return s + s;...> } | 已創建 方法 twice(String)jshell> twice("Oecan") $4 ==> "OecanOecan" | 已創建暫存變量 $4 : String

注:直接調方法執行,沒有指定變量接收,JShell 會自動創建一個臨時變量接收返回值。

覆蓋已存在的變量、方法、類的定義

在試驗代碼時,您可能會發現變量,方法或類的定義沒有按照您希望的方式執行。通過輸入新的定義可以輕松更改定義,該定義將覆蓋先前的定義。

例如,重新定義 twice() 方法:

jshell> String twice(String s) {...> return "Twice: " + s;...> } | 已修改 方法 twice(String) | 更新已覆蓋 方法 twice(String)jshell> twice("thing") $6 ==> "Twice: thing" | 已創建暫存變量 $6 : String

例如,重新定義變量:

jshell> int x = 45 x ==> 45 | 已創建 變量 x : intjshell> String x x ==> null | 已替換 變量 x : String | 更新已覆蓋 變量 x : int

查看 JShell 默認導入的包

jshell> /imports | import java.io.* | import java.math.* | import java.net.* | import java.nio.file.* | import java.util.* | import java.util.concurrent.* | import java.util.function.* | import java.util.prefs.* | import java.util.regex.* | import java.util.stream.*

自動補全功能

當我們想輸入 System 類時,只需要輸入 Sys 然后按下 Tab 鍵,則自動補全, 然后再輸入“.o”,則會自動補全方法,在補全“System.out.”后再按下 Tab 鍵,就會列出當前類的所有的 public 方法:

jshell> System 簽名: java.lang.System<再次按 Tab 可查看文檔>jshell> System.out. append( checkError() close() equals( flush() format( getClass() hashCode() notify() notifyAll() print( printf( println( toString() wait( write(

列出所有鍵入的源

列出到目前為止當前 session 里所有有效的代碼片段:

jshell> /list 2 : 2+24 : twice("Oecan")5 : String twice(String s) {return "Twice: " + s;}6 : twice("thing")8 : String x;

列出已聲明方法及其簽名

jshell> /methods | String twice(String)

加載外部的源代碼

如果在外部已經有寫好的 Java 文件,可以使用 /open 命令導入到 JShell 環境中,例如現在有一個Test.java 文件:

void say(String name) {System.out.println("hello " + name); }

導入 JShell 進程中:

jshell> /open /Users/Documents/java11/Test.java jshell> /methods # 查看已經聲明定義的方法 | String twice(String) | void say(String)jshell> say("zhangsan") hello zhangsan

查看 JShell 提供的所有指令

jshell> /help | 鍵入 Java 語言表達式, 語句或聲明。 | 或者鍵入以下命令之一: | /list [<名稱或 id>|-all|-start] | 列出您鍵入的源 | /edit <名稱或 id> | 編輯源條目 | /drop <名稱或 id> | 刪除源條目 | /save [-all|-history|-start] <文件> | 將片段源保存到文件 | /open <file> | 打開文件作為源輸入 | /vars [<名稱或 id>|-all|-start] | 列出已聲明變量及其值 | /methods [<名稱或 id>|-all|-start] | 列出已聲明方法及其簽名 | /types [<名稱或 id>|-all|-start] | 列出類型聲明 | /imports | 列出導入的項 | /exit [<integer-expression-snippet>] | 退出 jshell 工具 | /env [-class-path <路徑>] [-module-path <路徑>] [-add-modules <模塊>] ... | 查看或更改評估上下文 | /reset [-class-path <路徑>] [-module-path <路徑>] [-add-modules <模塊>]... | 重置 jshell 工具 | /reload [-restore] [-quiet] [-class-path <路徑>] [-module-path <路徑>]... | 重置和重放相關歷史記錄 -- 當前歷史記錄或上一個歷史記錄 (-restore) | /history | 您鍵入的內容的歷史記錄 | /help [<command>|<subject>] | 獲取有關使用 jshell 工具的信息 | /set editor|start|feedback|mode|prompt|truncation|format ... | 設置配置信息 | /? [<command>|<subject>] | 獲取有關使用 jshell 工具的信息 | /! | 重新運行上一個片段 -- 請參閱 /help rerun | /<id> | 按 ID 或 ID 范圍重新運行片段 -- 參見 /help rerun | /-<n> | 重新運行以前的第 n 個片段 -- 請參閱 /help rerun | | 有關詳細信息, 請鍵入 '/help', 后跟 | 命令或主題的名稱。 | 例如 '/help /list''/help intro'。主題: | | intro | jshell 工具的簡介 | id | 片段 ID 以及如何使用它們的說明 | shortcuts | 片段和命令輸入提示, 信息訪問以及 | 自動代碼生成的按鍵說明 | context | /env /reload 和 /reset 的評估上下文選項的說明 | rerun | 重新評估以前輸入片段的方法的說明

將你輸入的歷史代碼片段保存到文件中

保存指令 /save 的語法格式:/save [-all|-history|-start] <文件>。

jshell> /save -history /users/liaowenxiong/desktop/jshell.txt

總結

以上是生活随笔為你收集整理的JShell 详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。