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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Java 9抢先体验:与JShell的动手实践– Java REPL

發(fā)布時間:2023/12/3 javascript 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 9抢先体验:与JShell的动手实践– Java REPL 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

從今天開始如何開始使用Java 9最酷的功能之一?

上周末,我終于開始嘗試使用Java 9的早期訪問版本了。第一站是JShell,它也被稱為Project Kulla。 首先讓我鼓起勇氣嘗試早期訪問Java版本的原因。

那就對了。 Java 9的正式發(fā)布日期當(dāng)前設(shè)置為2016年9月,但是早期訪問版本已經(jīng)具有功能完整的JShell版本。 它仍在開發(fā)中,并且有一些古怪之處,但這從來沒有阻止過我們。

新話題:9的Java早期訪問:一個動手的Session JShell -該#Java REPL http://t.co/F8cQ9X5dQM pic.twitter.com/JoWR6i8PSz

— Takipi(@takipid) 2015年7月7日

有趣的事實1: Kulla項目是開發(fā)JShell的團(tuán)隊的內(nèi)部名稱。 庫拉(Kulla)是美索不達(dá)米亞神話中的建筑神的名字,他在建筑工作完成后被驅(qū)逐。 暗示Kulla用例是一種學(xué)習(xí)工具嗎?

那么,JShell是什么呢?

JShell / Project Kulla是第一個正式的Java REPL(Read-Eval-Print-Loop),這是一個命令行工具,使您可以自己運行Java語句,而不必將它們包裝在類或方法中。 與Python的解釋器或其他本機支持REPL的其他JVM語言(例如Scala和Groovy)類似。 在Java 9即將發(fā)布的功能中,它絕對是更有趣的功能之一。 要查看您附近的JDK即將推出的更多激動人心的功能(除了Project Jigsaw!),您可以閱讀有關(guān)Java 9的前5個功能的前一篇文章, 這些文章將改變您的編碼方式 。 到現(xiàn)在為止,如果您想使用Java進(jìn)行REPL,則可以使用具有多種語言支持的repl.it之類的替代方案,或者使用非官方的Java REPL項目。 不過,在Java 9中,REPL與langtools軟件包一起捆綁在JDK中。

有趣的事實2: 另一個帶有神話名稱的OpenJDK項目是Valhalla項目。 不僅限于Java 9,還致力于諸如值類型和泛型泛型等功能。 絕對是壞蛋。

但是,夠了,讓我們啟動它,看看它能做什么。 在下面的簡短終端編碼中,我們將使用JShell v0.61進(jìn)行快速測試(OSX 10.10.3存在一個已知問題,其中提示與一些輸出混合在一起,所以請不要介意,它將可能很快就會解決):

啟動并使用JShell

回顧我們剛剛看到的內(nèi)容:JShell的一些最有趣的功能

** [8/7/2015]更新:使用Oracle Java語言架構(gòu)師Brian Goetz的注釋進(jìn)行編輯

1.在裸露的語句上分號是可選的

您好JShell! 憑借REPL的快速和靈活特性,我們可以放輕松一些,而不必在聲明的末尾添加分號:

不,這里沒有分號

實際上,這是我們圍繞將來的Java功能進(jìn)行的一項調(diào)查中的一個受歡迎的回答。 當(dāng)然,分號可以作為終止符或分隔符保留在這里。 REPL允許一次輸入裸表達(dá)式和語句,因此分號對于Jshell上的終止符用例而言是可選的。

2. REPL網(wǎng)絡(luò)

使用JShell,我們不僅限于我們的機器 ,還可以訪問網(wǎng)絡(luò),這帶來了一些有趣的機會。 例如,考慮將其用作與服務(wù)器通信的終端,遠(yuǎn)程連接到服務(wù)器并從外部控制某些參數(shù)。 另一個選擇是查詢您的數(shù)據(jù)庫,這里的可能性確實是無限的。

顯示通過JShell獲取HTTP標(biāo)頭的簡單示例

3.幫助! 保存和加載工作區(qū)

除了運行和評估Java語句外,JShell還支持一系列命令,以幫助您了解和瀏覽REPL環(huán)境。 您可以保存和加載工作區(qū)(使Java類似于腳本語言的工作區(qū)),然后在執(zhí)行所有代碼后返回命令提示符(實際上您可以在終端記錄中看到我提到的OS X錯誤)。 。

其他有用的命令是列出所有當(dāng)前可用的變量和方法,查看所有命令歷史記錄,并列出到目前為止所編寫的所有代碼(有時仍然有些怪異)。

這是當(dāng)前可用命令的完整列表:

JShell的/幫助

4.沒有檢查過的異常

如果您擔(dān)心被檢查的異常會破壞您的REPL體驗–不再害怕,那么JShell會在后臺為您包裝這些異常。 在下面的示例中,迫使我們捕獲IOException的原因沒有引起注意。 在這里,我們在不處理IOException的情況下讀取和打印文件:

我們確實看到彈出一個檢查到的異常的情況是,當(dāng)我們嘗試運行線程并在其中使用Thread.sleep()時。 由于它是一個完整的方法,而不是單個裸語句,因此它必須是完全有效的Java:

繼續(xù)進(jìn)行一些其他未在終端錄制中使用的功能:

5. Java表達(dá)式

關(guān)于JShell終端的另一件事是,它還可以在其上評估Java表達(dá)式。 字符串連接,方法調(diào)用,算術(shù)等。 基本上,您可以在System.out.println(/ *此處* /)中包裝的任何內(nèi)容。 正如您可能已經(jīng)在其他評估中注意到的那樣,它將立即將結(jié)果放入其自己的變量中并打印出來:

6.轉(zhuǎn)發(fā)參考

JShell對前向引用提供了相當(dāng)不錯的支持,因此您可以定義引用其他方法或變量的函數(shù),這些方法或變量只會在以后定義。 這是AdoptOpenJDK的REPL教程中的示例:

7. JShell API

除了用作獨立的JDK工具外,JShell還將提供一個API,可將其所有功能開放給外部使用。 這意味著外部工具可以連接并使用JShell的功能,并且突然出現(xiàn)了一些有趣的可能性,例如將其包含在Eclipse,IntelliJ或Netbeans等IDE中。 該API更具創(chuàng)造性的用例可能包括使用它來擴展靜態(tài)分析功能,自動測試甚至可能掛接到實時JVM的工具。

8.隨時更改定義

您可以重新聲明變量,方法和類,而不必?fù)?dān)心原始聲明。 完成此操作后,系統(tǒng)會提示您一條消息,讓您知道發(fā)生了什么,但除此之外–一切照舊。

獎勵:您需要的只是愛

如果您深入研究/ repl / samples文件夾,則會發(fā)現(xiàn)這個可愛的示例,它將使用Swing吸引您3個小小的心:

Java

如何獨自上手?

首先,請查看倫敦Java社區(qū)(LJC)的“ 采用OpenJDK:入門工具包”中的說明。 以下是對幫助您起步的步驟的簡要概述,尤其是如果您以前從未使用過早期訪問JDK版本時,尤其如此:

  • 安裝Java 9搶先體驗JDK
  • 構(gòu)建kulla-dev分支: hg clone http://hg.openjdk.java.net/kulla/dev kulla-dev cd kulla-dev bash configure –with-boot-jdk=/path/to/jdk1.8.0 make clean images make install <=== optional
  • 建立REPL: cd langtools/repl bash ./scripts/compile.sh
  • 并且...現(xiàn)在您可以運行了: bash ./scripts/run.sh
  • 對于OS X用戶的重要說明:在運行compile.sh和run.sh之前,請編輯腳本并將#!/ usr / bin / sh更改為#!/ bin / sh 。

    如果您對此過程有任何疑問,請在下面的評論部分中發(fā)布它們,我們將竭盡所能。

    結(jié)論

    令人興奮的是,庫拉計劃(Project Kulla)越來越接近成熟,它將具有功能完善的狀態(tài)。 JShell具有廣泛的用例,但首先,它將幫助新老開發(fā)人員快速測試他們的新技能。 無論是基本的Java還是新的庫,您都剛剛開始思考。 而且,JShell使Java與具有這些功能的語言相提并論已有一段時間了,甚至還可以通過正式的API和流暢的命令行體驗進(jìn)一步推動Java的發(fā)展。

    翻譯自: https://www.javacodegeeks.com/2015/07/java-9-early-access-a-hands-on-session-with-jshell-the-java-repl.html

    總結(jié)

    以上是生活随笔為你收集整理的Java 9抢先体验:与JShell的动手实践– Java REPL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。