這篇文章給大家介紹Java 8中的JRE怎么用,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
員工經(jīng)過(guò)長(zhǎng)期磨合與沉淀,具備了協(xié)作精神,得以通過(guò)團(tuán)隊(duì)的力量開發(fā)出優(yōu)質(zhì)的產(chǎn)品。成都創(chuàng)新互聯(lián)堅(jiān)持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因?yàn)椤皩W⑺詫I(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡(jiǎn)單”。公司專注于為企業(yè)提供網(wǎng)站建設(shè)、成都網(wǎng)站制作、微信公眾號(hào)開發(fā)、電商網(wǎng)站開發(fā),小程序定制開發(fā),軟件定制網(wǎng)站等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。
Oracle公司如期發(fā)布了Java 8正式版!沒有讓廣大javaer失望。對(duì)于一個(gè)人來(lái)說(shuō),18歲是人生的轉(zhuǎn)折點(diǎn),從稚嫩走向成熟,法律意味著你是完全民事行為能力人,不再收益于未成年人保護(hù)法,到今年為止,java也走過(guò)了18年,java8是一個(gè)新的里程碑,帶來(lái)了***的諸多特性,lambda表達(dá)式,Stream API,新的Date time api,多核并發(fā)支持,重大安全問(wèn)題改進(jìn)等,相信java會(huì)越來(lái)越好,豐富的類庫(kù)以及龐大的開源生態(tài)環(huán)境是其他語(yǔ)言所不具備的,說(shuō)起豐富的類庫(kù),很多同學(xué)就吐槽了,java該減肥了,確實(shí)是該減肥,java8有個(gè)很好的特性,即JEP161(http://openjdk.java.net/jeps/161 ),該特性定義了Java SE平臺(tái)規(guī)范的一些子集,使java應(yīng)用程序不需要整個(gè)JRE平臺(tái)即可部署和運(yùn)行在小型設(shè)備上。開發(fā)人員可以基于目標(biāo)硬件的可用資源選擇一個(gè)合適的JRE運(yùn)行環(huán)境。
1.更小的Java環(huán)境需要更少的計(jì)算資源。
2.一個(gè)較小的運(yùn)行時(shí)環(huán)境可以更好的優(yōu)化性能和啟動(dòng)時(shí)間。
3.消除未使用的代碼從安全的角度總是好的。
4.這些打包的應(yīng)用程序可以下載速度更快。
緊湊的JRE分3種,分別是compact1、compact2、compact3,他們的關(guān)系是compact1<compact2<compact3,他們包含的API如下圖所示
javac –bootclasspath, or javac –profile <profile>
如果不符合compact的api,則報(bào)錯(cuò)。
$ javac -profile compact2 Test.java Test.java:7: error: ThreadMXBean is not available in profile 'compact2' ThreadMXBean bean = ManagementFactory.getThreadMXBean(); ^ Test.java:7: error: ManagementFactory is not available in profile 'compact2' ThreadMXBean bean = ManagementFactory.getThreadMXBean(); ^ 2 errors
java8新增一個(gè)工具,用來(lái)分析應(yīng)用程序所依賴的profile,有三個(gè)參數(shù)比較常用 -p,-v,-r
import java.util.Set; import java.util.HashSet; public class Deps { public static void main(String[] args) { System.out.println(Math.random()); Set<String> set = new HashSet<>(); } }
************** PROFILE ******************** jdeps -P Deps.class Deps.class -> /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar <unnamed> (Deps.class) -> java.io compact1 -> java.lang compact1 -> java.util compact1 ************** VERBOSE ******************** jdeps -v Deps.class Deps.class -> /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar Deps (Deps.class) -> java.io.PrintStream -> java.lang.Math -> java.lang.Object -> java.lang.String -> java.lang.System -> java.util.HashSet ************** RECURSIVE ******************** jdeps -R Deps.class Deps.class -> /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar <unnamed> (Deps.class) -> java.io -> java.lang -> java.util /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/jce.jar -> /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar javax.crypto (jce.jar) -> java.io -> java.lang -> java.lang.reflect -> java.net -> java.nio -> java.security -> java.security.cert -> java.security.spec -> java.util -> java.util.concurrent -> java.util.jar -> java.util.regex -> java.util.zip -> javax.security.auth -> sun.security.jca JDK internal API (rt.jar) -> sun.security.util JDK internal API (rt.jar) -> sun.security.validator JDK internal API (rt.jar) javax.crypto.interfaces (jce.jar) -> java.lang -> java.math -> java.security javax.crypto.spec (jce.jar) -> java.lang -> java.math -> java.security.spec -> java.util /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar -> /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/jce.jar java.security (rt.jar) -> javax.crypto JDK internal API (jce.jar) sun.security.util (rt.jar) -> javax.crypto JDK internal API (jce.jar) -> javax.crypto.interfaces JDK internal API (jce.jar) -> javax.crypto.spec JDK internal API (jce.jar)
$ hg clone http://hg.openjdk.java.net/jdk8/jdk8/ $ cd jdk8 $ make images profiles : ## Finished profiles (build time 00:00:27) ----- Build times ------- Start 2013-03-17 14:47:35 End 2013-03-17 14:58:26 00:00:25 corba 00:00:15 demos 00:01:50 hotspot 00:00:24 images 00:00:21 jaxp 00:00:31 jaxws 00:05:37 jdk 00:00:43 langtools 00:00:18 nashorn 00:00:27 profiles 00:10:51 TOTAL ------------------------- Finished building Java(TM) for target 'images profiles' $ cd images $ ls -d *image j2re-compact1-image j2re-compact2-image j2re-compact3-image j2re-image j2sdk-image
如今,物聯(lián)網(wǎng)正風(fēng)行一時(shí)。我們看到大量不同的設(shè)備在市場(chǎng)上出現(xiàn),每一種的更新速度都越來(lái)越快。java需要一個(gè)占用資源少的JRE運(yùn)行環(huán)境,緊湊的JRE特性的出現(xiàn),希望能帶來(lái)以后的物聯(lián)網(wǎng)的發(fā)展,甚至還是會(huì)有大量的java應(yīng)用程序出現(xiàn)在物聯(lián)網(wǎng)上面。目前oracle也發(fā)布了針對(duì)raspberry pi的JRE了。
另外該特性也是為java9的模塊化項(xiàng)目做準(zhǔn)備,模塊化特性是javaer所期待的特性。他是解決業(yè)務(wù)系統(tǒng)復(fù)雜度的一個(gè)利器,當(dāng)然OSGI也是相當(dāng)?shù)某錾5玱sgi對(duì)于新學(xué)者來(lái)說(shuō)未免太復(fù)雜了。
關(guān)于Java 8中的JRE怎么用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
文章名稱:Java8中的JRE怎么用
文章分享:http://chinadenli.net/article16/gieedg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、靜態(tài)網(wǎng)站、虛擬主機(jī)、品牌網(wǎng)站設(shè)計(jì)、做網(wǎng)站、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)