Java - REPL (JShell):初學者的指南

你好,未來的Java法師們!今天,我們將踏上一段令人興奮的旅程,進入Java的REPL(讀-求值-列印-循環)工具的世界,這個工具名叫JShell。作為你們親切友善的計算機科學老師,我會帶領你們一步一步地走過這次冒險。所以,請繫好安全帶,我們一起潛入水中!

Java - REPL (JShell)

REPL (JShell)的介紹

想像一下你正在學習演奏一種樂器。如果你能立即試奏出不同的音符和和弦,而不需要寫一首完整的交響曲,那該多好!JShell對於Java編程來說就是這樣的工具!

JShell,從Java 9開始引入,就像是Java代碼的遊樂場。它讓你可以輸入Java語句和表達式,並立即看到結果。不需要寫一個完整的程序,編譯它,然後運行它。這對於實驗、學習和快速測試想法來說非常完美。

使用JShell的優勢

  1. 即時反饋:輸入一行代碼,按Enter鍵,砰!你立即看到了結果。
  2. 輕鬆實驗:想要試試新的方法或看看特定的Java特性如何工作?JShell是你的沙盒。
  3. 學習工具:對於初學者(比如你們)來說,它是學習Java的不二選擇,沒有完整的程序結構的負擔。
  4. 快速原型設計:在將代碼片段整合到更大的程序之前,快速測試和改進它們。

運行JShell

讓我們動手吧!要啟動JShell,打開你的命令提示符或終端,並輸入:

jshell

如果一切設定正確,你會看到一個歡迎信息,以及一個看起來像這樣的提示符:

jshell>

恭喜你!你現在已經進入了JShell環境。讓我們試一些簡單的:

jshell> System.out.println("Hello, JShell!")
Hello, JShell!

看那!我們剛剛在JShell中打印了我們的第一條信息。沒有主方法,沒有類聲明,只有純粹的Java!

在JShell中創建變量

在JShell中創建變量就像 pie 一樣容易。讓我們試幾個:

jshell> int age = 25
age ==> 25

jshell> String name = "Alice"
name ==> "Alice"

jshell> double pi = 3.14159
pi ==> 3.14159

JShell會在創建每個變量後自動顯示其值。很酷吧?

在JShell中評估表達式

JShell 可以立即評估表達式。讓我們來做一些數學計算:

jshell> 5 + 3
$1 ==> 8

jshell> age * 2
$2 ==> 50

jshell> "Hello, " + name
$3 ==> "Hello, Alice"

注意JShell是如何為結果分配臨時變量名(如 $1, $2, $3)的。如果你願意,可以在後續的表達式中使用它們!

在JShell中創建和調用方法

在JShell中創建方法是輕而易舉的。讓我們來創建一個簡單的問候方法:

jshell> void greet(String name) {
...>     System.out.println("Hello, " + name + "!");
...> }
|  created method greet(String)

jshell> greet("Bob")
Hello, Bob!

我們定義了一個方法,並立即調用它。不需要類包装!

JShell 內置命令

JShell 來配有幾個內置命令,以幫助你導航和管理你的會話。這裡有一些最有用的命令:

命令 描述
/list 列出你已輸入的源代碼
/vars 列出聲明的變量和它們的值
/methods 列出聲明的方法
/edit 編輯一個源代碼條目
/save 將片段保存到文件
/open 打開並執行一個文件
/exit 離開JShell

讓我們試一試:

jshell> /vars
|    int age = 25
|    String name = "Alice"
|    double pi = 3.14159

jshell> /methods
|    void greet(String)

離開JShell

當你完成實驗後,可以通過輸入以下命令來退出JShell:

jshell> /exit
|  Goodbye

就这样,你已完成第一次JShell會話!

結論

JShell 是一個學習和實驗Java的非常強大的工具。它消除了傳統Java編程的障礙,讓你可以專注於代碼本身。在你繼續你的Java之旅時,你會發現JShell 是一個無價的夥伴,用於嘗試新想法,測試代碼片段,甚至調試複雜問題。

記住,在編程中,就像在生活中一樣,最好的學習方式就是實踐。所以不要害怕在JShell中實驗。輸入不同的命令,創造狂野的變量,定義瘋狂的方法 - 你玩得越多,學得越多!

當我們結束這課時,我想到一句著名計算機科學家Alan Kay的名言:"預測未來的最好方式就是創造它。"有了JShell在手,你現在已經有了創造自己Java未來的能力,一行代碼一行代碼地。

祝賀你們,未來的Java大師!直到下一次,請繼續探索,繼續學習,最重要的是,繼續在Java中找到樂趣!

Credits: Image by storyset