簡(jiǎn)介
毫無疑問,Java 8是Java自Java 5(發(fā)布于2004年)之后的最重要的版本。這個(gè)版本包含語言、編譯器、庫、工具和JVM等方面的十多個(gè)新特性。在本文中我們將學(xué)習(xí)這些新特性,并用實(shí)際的例子說明在什么場(chǎng)景下適合使用。
這個(gè)教程包含Java開發(fā)者經(jīng)常面對(duì)的幾類問題:
語言
編譯器
庫
工具
運(yùn)行時(shí)(JVM)
新的Java工具
Java 8提供了一些新的命令行工具,這部分會(huì)講解一些對(duì)開發(fā)者最有用的工具。
Nashorn引擎:jjs
jjs是一個(gè)基于標(biāo)準(zhǔn)Nashorn引擎的命令行工具,可以接受js源碼并執(zhí)行。例如,我們寫一個(gè)func.js文件,內(nèi)容如下:
function f() {
return 1;
};
print( f() + 1 );
可以在命令行中執(zhí)行這個(gè)命令:jjs func.js,控制臺(tái)輸出結(jié)果是:
2
類依賴分析器:jdeps
jdeps是一個(gè)相當(dāng)棒的命令行工具,它可以展示包層級(jí)和類層級(jí)的Java類依賴關(guān)系,它以.class文件、目錄或者Jar文件為輸入,然后會(huì)把依賴關(guān)系輸出到控制臺(tái)。
我們可以利用jedps分析下Spring Framework庫,為了讓結(jié)果少一點(diǎn),僅僅分析一個(gè)JAR文件:org.springframework.core-3.0.5.RELEASE.jar。
jdeps org.springframework.core-3.0.5.RELEASE.jar
這個(gè)命令會(huì)輸出很多結(jié)果,我們僅看下其中的一部分:依賴關(guān)系按照包分組,如果在classpath上找不到依賴,則顯示"not found".
org.springframework.core-3.0.5.RELEASE.jar -> C:Program FilesJavajdk1.8.0jrelibrt.jar
org.springframework.core (org.springframework.core-3.0.5.RELEASE.jar)
-> java.io -> java.lang -> java.lang.annotation -> java.lang.ref -> java.lang.reflect -> java.util -> java.util.concurrent -> org.apache.commons.logging not found -> org.springframework.asm not found -> org.springframework.asm.commons not found
org.springframework.core.annotation (org.springframework.core-3.0.5.RELEASE.jar)
-> java.lang -> java.lang.annotation -> java.lang.reflect -> java.util
JVM的新特性
使用Metaspace(JEP 122)代替持久代(PermGen space)。在JVM參數(shù)方面,使用-XX:MetaSpaceSize和-XX:MaxMetaspaceSize代替原來的-XX:PermSize和-XX:MaxPermSize。
結(jié)論
通過為開發(fā)者提供很多能夠提高生產(chǎn)力的特性,Java 8使得Java平臺(tái)前進(jìn)了一大步?,F(xiàn)在還不太適合將Java 8應(yīng)用在生產(chǎn)系統(tǒng)中,但是在之后的幾個(gè)月中Java 8的應(yīng)用率一定會(huì)逐步提高(PS:原文時(shí)間是2014年5月9日,現(xiàn)在在很多公司Java 8已經(jīng)成為主流,我司由于體量太大,現(xiàn)在也在一點(diǎn)點(diǎn)上Java 8,雖然慢但是好歹在升級(jí)了)。作為開發(fā)者,現(xiàn)在應(yīng)該學(xué)習(xí)一些Java 8的知識(shí),為升級(jí)做好準(zhǔn)備。
歡迎加入學(xué)習(xí)交流群569772982,大家一起學(xué)習(xí)交流。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67794.html
摘要:這個(gè)教程包含開發(fā)者經(jīng)常面對(duì)的幾類問題語言編譯器庫工具運(yùn)行時(shí)編譯器的新特性參數(shù)名稱為了在運(yùn)行時(shí)獲得程序中方法的參數(shù)名稱,老一輩的程序員必須使用不同方法,例如。 簡(jiǎn)介 毫無疑問,Java 8是Java自Java 5(發(fā)布于2004年)之后的最重要的版本。這個(gè)版本包含語言、編譯器、庫、工具和JVM等方面的十多個(gè)新特性。在本文中我們將學(xué)習(xí)這些新特性,并用實(shí)際的例子說明在什么場(chǎng)景下適合使用。 這...
摘要:需要注意的是很多流操作本身就會(huì)返回一個(gè)流,所以多個(gè)操作可以直接連接起來,如下圖這樣,操作可以進(jìn)行鏈?zhǔn)秸{(diào)用,并且并行流還可以實(shí)現(xiàn)數(shù)據(jù)流并行處理操作。為集合創(chuàng)建并行流。 上一篇文章,小樂給大家介紹了《Java8新特性之方法引用》,下面接下來小樂將會(huì)給大家介紹Java8新特性之Stream,稱之為流,本篇文章為上半部分。 1、什么是流? Java Se中對(duì)于流的操作有輸入輸出IO流,而Jav...
摘要:跳票之王終于發(fā)布了帶來了一系列激動(dòng)人心的新特性,包括新的時(shí)間日期,以及和,在多線程環(huán)境下性能提升不少。 跳票之王Java8終于發(fā)布了! Java8帶來了一系列激動(dòng)人心的新特性,包括lambda、新的時(shí)間日期AOPI,以及AtomicInteger和AtomicLong,在多線程環(huán)境下性能提升不少。 showImg(http://segmentfault.com/img/bVb0D2...
摘要:上一篇文章,小樂給大家?guī)砹诵绿匦灾?,接下來本文將?huì)給大家介紹新特性之前言通過發(fā)布新的來進(jìn)一步加強(qiáng)對(duì)日期與時(shí)間的處理。 上一篇文章,小樂給大家?guī)砹薐ava8新特性之Optional,接下來本文將會(huì)給大家介紹Java8新特性之Date API 前言: Java 8通過發(fā)布新的Date-Time API來進(jìn)一步加強(qiáng)對(duì)日期與時(shí)間的處理。 舊版的 Java 中,日期時(shí)間 API 存在諸多問題...
摘要:歐陽思海繼承接口后,又加了新的抽象方法,這個(gè)接口就不再是函數(shù)式接口默認(rèn)方法在接口中添加了一個(gè)默認(rèn)方法。總結(jié)在這篇文章中,我們講了表達(dá)式方法引用函數(shù)式接口接口中的靜態(tài)方法接口中的默認(rèn)方法的使用。 今天我來聊聊 Java8 的一些新的特性,確實(shí) Java8 的新特性的出現(xiàn),給開發(fā)者帶來了非常大的便利,可能剛剛開始的時(shí)候會(huì)有點(diǎn)不習(xí)慣的這種寫法,但是,當(dāng)你真正的熟悉了之后,你一定會(huì)愛上這些新的...
閱讀 3527·2023-04-25 14:57
閱讀 2574·2021-11-22 14:56
閱讀 2097·2021-09-29 09:45
閱讀 1779·2021-09-22 15:53
閱讀 3327·2021-08-25 09:41
閱讀 908·2019-08-29 15:22
閱讀 3307·2019-08-29 13:22
閱讀 3132·2019-08-29 13:08