Java SE 8新功能导览:Java开发世界中的重大变化
與其他專業(yè)團(tuán)隊(duì)成員一樣,我是采用OpenJDK的成員之一,但是從最近8個(gè)月開(kāi)始加入,我們經(jīng)歷了Java SE 8 開(kāi)發(fā),編譯,編碼,討論等各個(gè)階段,直到將其付諸實(shí)踐為止。 。 它于2014年3月18日發(fā)布,現(xiàn)在可供您使用。
我很高興宣布本系列“ Java SE 8新功能之旅 ”,我將在其中編寫示例,以簡(jiǎn)化Java SE 8知識(shí)的獲取,開(kāi)發(fā)經(jīng)驗(yàn),新功能以及將利用您的知識(shí)的API,增強(qiáng)您的編碼方式,并提高生產(chǎn)率。 希望您喜歡它,就像我在編寫時(shí)一樣。
我們將瀏覽Java SE 8(項(xiàng)目和API)中的新主要和重要功能,該平臺(tái)旨在支持更快,更輕松的Java開(kāi)發(fā)。 我們將學(xué)習(xí)Project Lambda ,這是一種支持Java代碼中l(wèi)ambda表達(dá)式的新語(yǔ)法。
檢查新的Stream API以處理集合并管理并行處理。
使用DateTime API計(jì)算時(shí)間跨度,以表示,管理和計(jì)算日期和時(shí)間值。
除了Nashorn之外,新的引擎還可以更好地支持Java虛擬機(jī)使用JavaScript代碼。
最后,我還將介紹一些鮮為人知的功能,例如將字符串連接到列表的新方法,以及其他將在日常任務(wù)中為您提供幫助的其他功能。
有關(guān)Java SE 8功能和教程的更多信息,我建議您也參考Java教程官方網(wǎng)站和Java SE 8 Java API文檔 。
我們將在本系列中討論的主題包括:
安裝Java SE 8,注意事項(xiàng)和建議。
在Windows上安裝Java SE 8
為了在Microsoft Windows上運(yùn)行Java SE 8,請(qǐng)首先檢查您擁有哪個(gè)版本。 Windows 8、7,Vista和XP支持Java SE 8。 具體來(lái)說(shuō),您將需要這些版本。 對(duì)于Windows 8或8.1,您需要Windows的桌面版本。 不支持Windows RT。 您可以在任何版本的Windows 7以及最新版本的Windows Vista和Windows XP上運(yùn)行Java SE 8。 在基于Server的Windows版本上,您可以運(yùn)行2008和64位版本的2012。如果要在Java Applet上運(yùn)行,則需要64位瀏覽器,這些瀏覽器可以包括Internet Explorer 7.0及更高版本,Firefox 3.6和更高版本。以上版本以及Windows上支持的Google Chrome,但Mac上不支持。您可以從以下網(wǎng)址下載Java SE 8的Java開(kāi)發(fā)者工具包:
在Mac上安裝Java SE 8
為了在Mac OS X上使用Java SE 8,必須具有運(yùn)行Mac OS X 10.7.3的基于Intel的Mac,即Lion或更高版本。 如果您使用的是Mac的舊版本,則將無(wú)法編程或運(yùn)行Java 8應(yīng)用程序。 為了安裝Java SE 8,您需要在Mac上具有管理權(quán)限。 為了在瀏覽器中運(yùn)行Java applet,您需要使用Safari或Firefox之類的64位瀏覽器.Google Chrome是32位瀏覽器 ,并且不能用于此目的 。 Windows上的SE,同一網(wǎng)站上有MAC OS .dmg版本可供下載和安裝。 實(shí)際上包含所有操作系統(tǒng)版本。 但是,我們的重點(diǎn)是Windows和MAC。
現(xiàn)在,您可以在Windows和MAC OS X平臺(tái)上開(kāi)始使用Java SE 8進(jìn)行編程了。
大概安裝了Java SE 8之后,讓我們深入了解第一點(diǎn),并簡(jiǎn)要地了解一下Java SE 8的主要功能,以開(kāi)始我們最喜歡的IDE的編碼之旅。
引入Java SE 8的主要功能后,變化很大。
JSR 337:Java SE 8發(fā)行內(nèi)容概述
Java SE 8是Java編程語(yǔ)言和Java虛擬機(jī)的主要發(fā)行版。 它包括許多更改。 有些文章比Lambda表達(dá)式等文章有更多的報(bào)道,但是我將同時(shí)討論主要變化和一些次要變化。
JSR 335:Lambda表達(dá)式
可能最受關(guān)注的是Project Lambda,這是一組新的語(yǔ)法功能,可讓Java開(kāi)發(fā)人員充當(dāng)函數(shù)程序員。 這包括lambda表達(dá)式,方法引用和其他一些功能。
JSR 310:日期和時(shí)間API
有一個(gè)用于管理日期和時(shí)間的新API。 替換舊的類。 這些較舊的類仍在Java Runtime中,但是在構(gòu)建新應(yīng)用程序時(shí),您可能希望移至這套新功能,這些功能可以簡(jiǎn)化代碼并更加直觀地編程。 有一些新類可以管理本地日期,時(shí)間和時(shí)區(qū),以及計(jì)算不同時(shí)間之間的差異。
流API
添加了用于管理集合的新工具,包括列表,地圖,集合等。流允許您處理集合中的每個(gè)項(xiàng)目,而無(wú)需編寫明確的循環(huán)代碼。 它還使您可以將處理分為多個(gè)CPU。 因此,對(duì)于大型,復(fù)雜的數(shù)據(jù)集,您可以看到顯著的性能提升。
納斯霍恩項(xiàng)目
Nashorn JavaScript引擎也是Java SE 8的新功能。 這是一個(gè)全新JavaScript引擎,從頭開(kāi)始編寫,可以使用JavaScript進(jìn)行編碼,但可以集成Java類和對(duì)象。Nashorn的目標(biāo)是在Java中使用本機(jī)JVM實(shí)現(xiàn)輕量級(jí)高性能JavaScript運(yùn)行時(shí)。 該項(xiàng)目旨在使Java開(kāi)發(fā)人員能夠通過(guò)JSR-223在Java應(yīng)用程序中嵌入JavaScript,并使用jrunscript命令行工具開(kāi)發(fā)獨(dú)立JavaScript應(yīng)用程序。在有關(guān)Nashorn的文章中,我將介紹如何從命令行運(yùn)行Nashorn代碼。 還有如何在單獨(dú)的文件中編寫JavaScript,然后從Java代碼執(zhí)行這些文件。
并發(fā)API增強(qiáng)。
并發(fā)框架也有增強(qiáng),使您可以管理和累積多個(gè)線程中的值。 還有很多較小的變化。
字符串,數(shù)字有新工具
在字符串類和其他新類中,有一些用于創(chuàng)建分隔列表的新工具。 有一些用于匯總數(shù)字的工具,包括整數(shù),雙精度數(shù),雙精度數(shù)等等。
其他新功能
還有一些工具可以更好地檢測(cè)空情況,我將在本系列中介紹所有這些工具。
我將介紹如何使用新的便捷方法來(lái)處理文件。
那么,Java SE 8何時(shí)可用?
答案是,現(xiàn)在。 它于2014年3月18日發(fā)布。對(duì)于使用Java構(gòu)建客戶端站點(diǎn)應(yīng)用程序的開(kāi)發(fā)人員,JavaFX富互聯(lián)網(wǎng)應(yīng)用程序框架現(xiàn)在支持Java 8。 而且大多數(shù)Java企業(yè)版供應(yīng)商也都支持Java 8。 是否立即遷移到Java SE 8取決于您正在處理的項(xiàng)目類型。
對(duì)于許多服務(wù)器和客戶端站點(diǎn)應(yīng)用程序,它立即可用。
尚不支持Android。
Android開(kāi)發(fā)人員要當(dāng)心; 目前,Android不支持Java SE 8語(yǔ)法和API。
直到最近,Android才采用了一些最新的Java 7語(yǔ)法。 因此,Android可能需要一些時(shí)間才能支持此最新語(yǔ)法或最新API。 但是對(duì)于所有其他Java開(kāi)發(fā)人員來(lái)說(shuō),值得一看的是這些新功能。
那IDE呢?
所有主要的Java開(kāi)發(fā)環(huán)境都支持Java SE 8。 包括Oracle的Netbeans , Intellij Idea和Eclipse 。 在本系列中,我將使用Netbeans版本8在Netbeans中進(jìn)行所有演示,可以從https://netbeans.org/downloads/下載。
但是,在開(kāi)始研究本系列之前,讓我們先檢查一下,我們可能已經(jīng)安裝了Java SE 8,并在Netbeans下啟動(dòng)了一個(gè)新項(xiàng)目,該項(xiàng)目將包含我們將要編寫的所有代碼。 然后開(kāi)發(fā)一個(gè)lambda代碼來(lái)測(cè)試我們的項(xiàng)目是否可以在Java SE 8中正常工作。
或者,您可以從我的Github帳戶下載系列源代碼,使用Netbeans打開(kāi)它,然后按照我接下來(lái)顯示的內(nèi)容以及即將發(fā)布的系列代碼進(jìn)行操作。
Github上的項(xiàng)目: https : //github.com/mohamed-taman/JavaSE8-Features
帶有Lambda表達(dá)式的Java SE 8上的Hello world應(yīng)用程序。
步驟(如果瀏覽我的代碼,則不需要):
這些代碼大多數(shù)都可以在Java 7上運(yùn)行 ,但是Java SE 8中在此處添加了一個(gè)注釋,即FunctionalInterface 。 如果未正確為Java 8配置Netbeans環(huán)境,則此注釋將導(dǎo)致錯(cuò)誤,因?yàn)樗粫?huì)被識(shí)別為有效的Java代碼。 我沒(méi)有看到任何錯(cuò)誤,因此這很好地表明Eclipse正在按我的期望工作。
接下來(lái),我將打開(kāi)名為Print.java的此類定義。 這是具有主要方法的類,因此我可以將其作為控制臺(tái)應(yīng)用程序運(yùn)行,并且它具有新的Java 8語(yǔ)法的關(guān)鍵行。
它正在創(chuàng)建一個(gè)功能接口的實(shí)例,我剛剛使用lambda表達(dá)式向您展示了,該表達(dá)式是Java在Java 8之前不存在的一種語(yǔ)法樣式。我將在下一篇文章的早期部分解釋這種語(yǔ)法的作用。
但是,您現(xiàn)在只需要知道,如果這段代碼沒(méi)有引起任何錯(cuò)誤,那么Netbeans就會(huì)再次將其識(shí)別為有效的Java語(yǔ)法。 我正在創(chuàng)建該接口的實(shí)例,然后調(diào)用該接口的print方法。 因此,我將運(yùn)行代碼。
我將單擊工具欄上的“運(yùn)行”按鈕,然后在控制臺(tái)中看到成功的結(jié)果。 我創(chuàng)建了一個(gè)對(duì)象,它是使用lambda表達(dá)式的該接口的實(shí)例。 我已經(jīng)調(diào)用了它的方法,并將其輸出到控制臺(tái)。 因此,如果一切正常,那么您的狀態(tài)就很好。 您已經(jīng)準(zhǔn)備好開(kāi)始在Netbeans中使用Java SE 8進(jìn)行編程。 如果您在使用過(guò)程中遇到任何問(wèn)題,請(qǐng)返回之前的步驟并逐步進(jìn)行操作。 一次一步 。
資源:
翻譯自: https://www.javacodegeeks.com/2014/06/java-se-8-new-features-tour-the-big-change-in-java-development-world.html
總結(jié)
以上是生活随笔為你收集整理的Java SE 8新功能导览:Java开发世界中的重大变化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何用Excel制作一份简历电脑如何制作
- 下一篇: 如何用鲁大师检测电脑温度如何看电脑温度