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

歡迎訪問 生活随笔!

生活随笔

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

javascript

Java 9 尝鲜之JShell交互式编程环境

發布時間:2024/2/28 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 9 尝鲜之JShell交互式编程环境 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自https://www.cnblogs.com/IcanFixIt/p/6690478.html

JShell——Java 9 的交互式編程環境

本文要求讀者有基本的 Java 知識。

Tips
Java 9 的代碼由于提供了新特性,所以有些代碼并不支持向后兼容。也就是說,用 Java 9 寫的代碼,有可能在 Java 8 或更早版本的 JDK 上不能運行。

1. 在操作系統上安裝開發所需要的軟件

首先,你需要下載JDK 9?(Java Development Kit 9) ,需要到此網站來下載JDK 9。首先需要先同意許可協議,然后就可以下載了。
Java 9 可以運行在很多平臺上:

  • Windows 32-bit
  • Windows 64-bit
  • macOS 64-bit (以前稱之為 Mac OS X 或 OS X)
  • Linux 32-bit
  • Linux 64-bit
  • Linux on ARM 32-bit
  • Linux on ARM 64-bit

下一步需要配置環境變量。跟之前的 JDK 配置方法相同。這里,我以 macOS 10.12 版本為例,在 Macbook 上的配置。這里會需要 vi 的一些基本操作,可以去網上查找如何使用。

  • 下載完 JDK 后,直接運行。然后安裝目錄在:
    /library/Java/JavaVirtualMachines/jdk-9.jdk/
  • 在 Terminal 下,進入到你的用戶的當前目錄下(一打開就是你的用戶默認目錄,實在不清楚在命令行敲入cd則會切換到默認目錄下)。
  • 在命令行中執行ls -a命令,列出當前目錄下的包括隱藏的文件或目錄。
  • 4.找到?.bash_profile文件,此文件會影響你當前用戶的配置信息,并執行vi .bash_profile?命令編輯此文件。

    5.進入編輯頁面后,配置 Java Home 和 Path 環境變量:

    6.配置完以后,使用esc鍵退出編輯狀態,輸入“:wq”,保存并退出。并執行
    . .bash_profile,使配置文件立刻生效。

  • 在命令行下執行javac -version,如果輸出如下信息,則說明 JDK 配置正確。
  • 至此,JDK 配置完成。
    啟動JShell。
    在Terminal下輸jshell -v,

    此時,就進入JShell 開發環境,命令行里是以jshell>開頭。
    如果想退出JShell 環境,則輸入/exit命令。

    2. 理解在交互式編程環境下開發的好處

    Java 9 中引入了交互式編程環境(REPL),這就是JShell,它允許可以執行 Java腳本代碼,并且立即返回結果。因此,我們不需要創建什么一個解決方案或工程,就能很容易地編寫代碼并能很快的看到運行結果。我們不必等待整個項目 build 完去檢查多行代碼的執行結果。JShell,就像其他 REPL 一樣,有利于探索式編程,我們很容易地進行交互式嘗試和調試不同的算法和結構。

    3. 第一個 JShell 下的 Java 代碼

    我們簡單寫一個 JShell 下的一個 Java 代碼,就是一個打印輸入。

    System.out.println("Hello, Java 9, now I am in JShell!")

    輸出結果為:

    Tips
    在 JShell 環境下,語句末尾的“;” 是可選的。但推薦還是最好加上。提高代碼可讀性。

    在一些例子中,我們將利用JShell 這一特性,提供對網絡的訪問。此功能與Web Service交互時非常有用。然而,你必須確保你的防火墻配置不會阻擋 JShell。

    4. 查看默認導入和使用自動補全功能

    默認情況下,JShell提供了一些常用包的導入,我們可以使用import?語句導入必要的包或是從指定的路徑的包,來運行我們的代碼片段。我們可以輸入以下命令列出所有導入的包:

    /imports

    下面就會列出已經導入的包:

    當我們在 JShell 之外寫 Java 代碼時,如所需要的 java.lang 包是默認導入的。在 JShell 下使用/imports命令并沒沒有列出這些包,以下是所有的在 JShell 環境下默認導入的包:

    • java.lang
    • java.io
    • java.math
    • java.net
    • java.nio.file
    • java.util
    • java.util.concurrent
    • java.util.function
    • java.util.prefs
    • java.util.regex
    • java.util.stream

    此外,JShell 提供了自動補全的功能,只需按下 Tab 鍵,就能自動補全。
    但有些情況下,根據我們輸入的語句會對應很多選項,這時候 JShell 就會全部給你列出來。
    例如,當我輸入 S 時,就會列出來所以以 S 開頭的類。

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


    最后完整輸入:

    System.out.println("Auto-complete is helpful in JShell");

    5. 在JShell中編寫 Java 9 代碼

    首先,在命令行下可以執行jshell -v來進入命令行的開發環境
    下面我們定義calculateRectangleArea方法來計算一個正方形的面積。

    float calculateRectangleArea(float width, float height) {return width * height; }

    然后輸入回車,則會輸入如下信息:

    Tips
    所有從 JShell 輸出的消息用“|”表示。

    輸入/list?在 JShell 中,會列出到目前為止當前 session 里所有有效的代碼片段。

    接下來我們定義一個 float類型的變量width并賦值為50:

    float width = 50;

    輸入完上面的代碼后,JShell 就會給我們如下信息:

    然后定義height變量:

    float height = 25;

    接著輸入float area = ca然后自動補全為float area = calculateRectangleArea(,再輸入剛才定義的變量width?和height,則方法則計算出面積并返回1250.0。

    下面我們再使用/list列出到目前為之所有有效的代碼片段。

    輸入以下代碼:

    System.out.printf("Width: %.2f, Height: %.2f, Area: %.2f\n", width, height, area);

    則會輸入如下信息:

    #### 6. 計算表達式
    Java 9 中運行我們評估任何有效的表達式,在 JShell中輸入如下表達式:

    width * height;

    當我們輸入上面的表達式,它就會給分配給一個臨時的變量,這個變量以“”開頭,并跟著一個數字。這個變量是”開頭,并跟著一個數字。這個變量是6,但也有可能是7,7,8。

    在當前 session 中,我們可以在接下來的代碼中直接使用此臨時變量,例如:

    System.out.printf("The calculated area is %.2f\n", $6);

    我們還可以使用之前的臨時變量進行響應的運算,例如,

    $6 + 10.5f;

    7. 使用變量、方法和源代碼

    到目前為止,我們創建了很多變量,我們可以使用/vars來查看當前 session 下所有創建過的變量:

    我們再定義一個方法:

    float calculateRectanglePerimeter(float width, float height) {return 2 * (width + height); }

    然后使用/methods?來查看所有的方法。

    你也可以 修改已經存在的方法,例如,calculateRectanglePerimeter的方法改為如下:

    float calculateRectanglePerimeter(float width, float height) {float perimeter = 2 * (width + height);System.out.printf("Width: %.2f\n", width);System.out.printf("Height: %.2f\n", height);System.out.printf("Perimeter: %.2f\n", perimeter);return perimeter; }

    然后輸出以下信息:

    我們還可以使用?/list method name來查看具體某一個方法的具體信息:

    8. 使用外部代碼編輯器來編寫 Java 代碼

    現在,我想對calculateRectangleArea方法做一些改動,如果這時有外部代碼編輯器的話,做起來會很容易。
    在 JShell 中可以啟用JShell Edit Pad 編輯器,需要輸入如下命令,來修改上面的方法:

    /edit calculateRectangleArea

    接下來就會顯示編輯器對話框,和將要修改的方法:

    代碼修改完成以后,先點擊“Accept”按鈕,再點擊“Exit”按鈕,則退出編輯器,在 JShell 命令行中提示方法已經修改。
    JShell Edit Pad 編輯器功能非常有限,僅能提供一些最基礎的功能,不過好消息是,JShell 可以配置外部的代碼編輯器,我們只需要使用/edit 外部編輯器的完整路徑的方式,來指定外部的代碼編輯器。
    例如,我想使用Sublimet Text 作為外部的代碼編譯器,則需要使用如下命令:

    /set editor "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"

    設置成功以后,返回如下信息:

    然后我們再執行/edit calculateRectangleArea命令,則就打開 Sublime Text,

    9. 從外部加載源代碼

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

    void printHello() { System.out.println("Hello, World!"); }printHello()

    在 JShell 環境中執行以下語句:

    /open /Users/i324779/Desktop/Begin.java

    加載文件并執行:

    超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

    總結

    以上是生活随笔為你收集整理的Java 9 尝鲜之JShell交互式编程环境的全部內容,希望文章能夠幫你解決所遇到的問題。

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