成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java9先睹為快:JShell動手實踐

開發 后端 開發工具
上周我終于抽出時間親身體驗了一個Java 9 的搶先體驗版本。第一站就是JShell,它也被稱之為Kulla項目,這就是起初驅使我鼓起勇氣去嘗試Java9搶先體驗版的原因。沒錯,官方的 Java 9發布時間目前定在2016年9月,但搶先體驗版中已經有全功能的JShell。

[[142940]]

如何現在開始使用Java 9最酷特性之一?

上周我終于抽出時間親身體驗了一個Java 9 的搶先體驗版本。***站就是JShell,它也被稱之為Kulla項目,這就是起初驅使我鼓起勇氣去嘗試Java9搶先體驗版的原因。沒錯,官方的 Java 9發布時間目前定在2016年9月,但搶先體驗版中已經有全功能的JShell。

 新文章:Java9先睹為快:JShell編程實踐——#Java REPL http://t.co/F8cQ9X5dQM pic.twitter.com/JoWR6i8PSz

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

有趣的事實 1:Kulla項目是JShell研發團隊的內部名字。Kulla是美索不達米亞神話中的建筑者之神,他在施工結束后被放逐。這是在暗示Kulla的用例(use case)是一種學習工具嗎?

那么到底什么是JShell?

JShell/Kulla項目是***個官方的Java REPL (Read-Eval-Print-Loop的縮寫,即交互式編程環境),一種命令行工具。它允許你無需使用類或者方法包裝來執行Java語句。它與 Python的解釋器類似,或其它本地支持REPL的JVM語言,如Scala和Groovy。在Java 9即將到來的的特性中,這絕對是更有趣的特性之一。想了解正在來到你身邊的JDK的更多有趣特性(Jigsaw項目除外!)你可以閱讀早先我們關于Java 9的5大特性文章,這些特性可以改變你的編碼方式。到現在為止,如果你要在Java中用REPL,你也可以使用替代方案,比如像具有多種語言支持的repl.it或非官方的Java REPL項目。不過使用Java9,REPL與langtools包一起直接捆綁到了JDK。

有趣的事實 2:另一個也有著神話般名字的OpenJDK項目就是Valhalla;其目標是超越Java 9,致力于數值類型和泛型具體化的特性研發。絕非善類。

廢話少說,我們把它運行起來看看它能做什么。在下面很短的終端錄制視頻中,我們運行JShell v0.61完成一個快速測試(在OSX 10.10.3 中存在一個已知的問題,即提示與部分輸出會混合顯示在一起。無需在意,后續會被盡快修復)。

譯者注:JShell視頻請參考原文

回顧一下我們剛剛所看到的:JShell一些最有趣的特性

[8/7/2015] 更新:編輯于Brian Goetz的筆記,他是Oracle的Java架構師。

1、分號對于純語句是可選的

Hello JShell! 基于REPL快速和靈活的特性,我們可以放松一下,不用在語句結束地方加分號:Hello JShell!

這里真沒有分號哦

實際上,在我們發起的一個關于未來Java特性的調查中,該特性是受多數人認可的。當然分號仍被保留了下來,無論是作為終結符還是分隔符。REPL允許一次性鍵入純表達式和語句,因此分號對于JShell終端用例是可選的。

2、REPL網絡

使用JShell時,我們不會受限于機器和網絡訪問,這帶來了一些有趣的機會。例如,想想把它當做一個終端來與服務器交流,遠程連接到服務器并且從外面控制一些參數。另一個選擇是查詢數據庫,這里真的是有***可能。

用JShell來獲取一個HTTP請求header的簡單例子

3、Help!保存和加載工作空間

除了運行和計算Java語句,JShell支持一系列命令行來幫助你了解和瀏覽REPL環境。你可以保存和加載工作空間(這讓Java有點像腳本語言),且全部代碼執行完成后可以在命令行提示下返回(此時你可以在終端視頻中看到我提到過的OS X bug)。

其它有用的命令行都列出了所有當前可以用的變量和方法,顯示出你的所有歷史命令,并且列出了目前為止你寫過的所有代碼(這個有時表現得還是有點奇怪)。

這是當前可用的完整命令列表:

JShell /help

4、沒有受檢異常

如果你一直擔心受檢異常會毀掉你的REPL經歷——無需再擔心,JShell在后臺為你隱藏好了。在下面的例子中,本應當強迫我們捕獲一個IOException,卻沒有出現。下面的例子是我們在讀取和打印一個文件,不需要處理IOException。

有一種情況的確會有受檢異常彈出,就是當我們嘗試運行一個線程,并在里面使用了 Thread.sleep() 語句。由于這是一個整體的方法而非單獨的純語句,它必須是完全有效的Java語句:

繼續來看一些沒在終端視頻中體現的其它特性

5、Java表達式

JShell終端還可以自己計算Java表達式。字符串連接、方法回調、算法,諸如此類。基本上,任何你可以包裝在 System.out.println(/ expression here /) 里的都可以計算。正如你可能已經知道到的其它計算方式,它會立即將結果賦給自己的一個變量并打印出來。

6、向前引用

JShell給向前引用提供了很棒的支持,所以你在定義方法時可以引用其他方法或變量,且這些方法或變量僅會在一段時間后被定義。這是AdoptOpenJDK提供的REPL指南中的一個例子:

7、JShell API

JShell除了可以作為單獨的JDK工具,還可以提供一個API,它能對外部調用開放所有的功能。這意味著外部工具可以連接并使用JShell的功能,如此一些很有趣的可能性突然就被開發了出來,比如在Eclipse、IntelliJ或Netbeans之類的IDE中引用它。對于該API可能還有更多創造性的用例,例如利用該API來擴展靜態分析的工具,自動化測試或者甚至是連接到實時的JVM。

8、在運行中修改定義

你可以重新聲明變量、方法或者類,而無需擔心原始的聲明。一旦你這樣操作了,就會收到一個信息提示你發生了什么,但除此之外一切照舊。

彩蛋:你所需要的都是愛

如果你去查找目錄/repl/samples,將會發現這個使用Swing做出來的可愛樣例,會給你畫3顆小心心:

Java <3 REPL

你自己如何開始使用JShell?

開始之前,看看Adopt OpenJDK上的說明書:倫敦Java社區(LJC)的入門套件。下面是步驟的快速摘要,來幫助你順利開始。特別是如果你之前從未玩過Java搶先體驗版本。

1、安裝 Java 9搶先體驗版本JDK
2.編譯kulla-dev分支

1

2

3

4

5

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

3、編譯REPL

1

2

cd langtools/repl

bash ./scripts/compile.sh

4、然后……現在你可以準備運行了

1

bash ./scripts/run.sh

對于OS X用戶的重要提示:在運行 compile.sh & run.sh 之前,編輯這些腳本,把 #!/usr/bin/sh 修改為 #!/bin/sh。

如果對于該過程有任何疑問,請提交到下面的評論區,我們會盡可能給予幫助。

總結

很興奮能夠看到Kulla項目日趨成熟,最終將達到功能齊全的狀態。JShell有很廣泛的用例,但是首要的是能幫助新的和現有的開發者快速測試他 們新學會的技巧。基本的Java或新的類只是讓你開始充實大腦。此外,在當下這段時間,JShell使得Java與其它擁有這些功能的語言處于同等水平, 或許未來還可以在官方的API和流暢的命令行體驗下,開創新的思路。

原文鏈接: takipi 翻譯: ImportNew.com - 無名俠女譚
譯文鏈接: http://www.importnew.com/16353.html

責任編輯:王雪燕 來源: ImportNew
相關推薦

2009-11-20 09:11:07

Chrome OS谷歌操作系統

2012-09-21 10:49:16

虛擬化

2014-09-01 10:22:29

Ubuntu

2010-10-20 08:53:57

Android 3.0

2019-12-26 12:00:24

ECUG Con 20

2009-02-20 08:51:22

.NET框架CLR組件

2011-04-01 11:26:21

JDK 7

2009-10-28 12:27:36

linux操作系統發展

2021-06-17 08:00:00

Windows 10Windows微軟

2011-04-08 16:14:21

2009-03-31 09:04:46

MacChrome瀏覽器

2015-05-12 11:49:45

OpenStack K開源特性分析

2011-11-30 08:41:20

NoSQL數據庫

2011-03-09 10:45:09

DiscuzX2公測新功能

2020-12-08 06:21:51

Go2語言Go1

2009-02-12 15:18:59

2010-11-17 11:25:20

高交會郵件安全263企業郵箱

2015-04-23 10:57:07

Apple WatchAPP

2013-03-25 09:51:53

Facebook數據中心云數據中心

2010-06-21 13:32:46

office2010微軟
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线观看免费国产 | 久草精品视频 | 一区二区三区四区在线 | 免费一区二区 | 国产在线高清 | 免费久 | 亚洲精品在线视频 | 久久草在线视频 | 欧美一级片在线播放 | 99精品观看 | 日本 欧美 三级 高清 视频 | 欧美bondage紧缚视频 | 亚洲精品免费视频 | 九九天堂网| 免费能直接在线观看黄的视频 | 亚洲精品一区二区在线观看 | 亚洲高清视频在线 | 91在线视频免费观看 | 国产一区二区三区四区在线观看 | 四虎影院欧美 | 中文字幕国产视频 | 福利社午夜影院 | 一区二区三区视频免费观看 | 精品在线观看一区二区 | 国产精品久久久久久久久久久免费看 | 成人精品一区二区三区 | 国产av毛片| tube国产| 欧美日本韩国一区二区 | 精品国产一级 | 午夜久久久久 | 国产欧美日韩在线播放 | 嫩草一区二区三区 | 精品一区二区久久 | 欧美一级网站 | 999久久久久久久 | 国产免国产免费 | 国产一级精品毛片 | 看亚洲a级一级毛片 | 国产99小视频 | 欧美一区二区三区视频在线观看 |