資源描述:
《java8新特性探究-精簡的jre詳解》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、Java8新特性探究(8):精簡的JRE詳解詳細解釋compactprofile相關(guān)知識,字面上翻譯是緊湊的配置文件,但我認為緊湊的JRE更容易理解,或者精簡的JREAD:Oracle公司如期發(fā)布了Java8正式版!沒有讓廣大javaer失望。對于一個人來說,18歲是人生的轉(zhuǎn)折點,從稚嫩走向成熟,法律意味著你是完全民事行為能力人,不再收益于未成年人保護法,到今年為止,java也走過了18年,java8是一個新的里程碑,帶來了前所未有的諸多特性,lambda表達式,StreamAPI,新的Datetimeapi,多核并發(fā)支持,重大安全問題改進等,相信java會越來越好,豐富的類庫以及龐大
2、的開源生態(tài)環(huán)境是其他語言所不具備的,說起豐富的類庫,很多同學就吐槽了,java該減肥了,確實是該減肥,java8有個很好的特性,即JEP161(jeps161),該特性定義了JavaSE平臺規(guī)范的一些子集,使java應(yīng)用程序不需要整個JRE平臺即可部署和運行在小型設(shè)備上。開發(fā)人員可以基于目標硬件的可用資源選擇一個合適的JRE運行環(huán)境。1.更小的Java環(huán)境需要更少的計算資源。2.一個較小的運行時環(huán)境可以更好的優(yōu)化性能和啟動時間。3.消除未使用的代碼從安全的角度總是好的。4.這些打包的應(yīng)用程序可以下載速度更快。緊湊的JRE分3種,分別是compact1、compact2、compact3
3、,他們的關(guān)系是compact1compact2compact3,他們包含的API如下圖所示使用javac根據(jù)profile編譯應(yīng)用程序javacbootclasspath,orjavacprofileprofile如果不符合compact的api,則報錯。$javac-profilecompact2Test.javaTest.java:7:error:ThreadMXBeanisnotavailableinprofile'compact2'ThreadMXBeanbean=ManagementFactory.getThreadMXBean();^Test.java:7:error:Ma
4、nagementFactoryisnotavailableinprofile'compact2'ThreadMXBeanbean=ManagementFactory.getThreadMXBean();^2errors使用工具開發(fā)的效果JPEDS工具使用java8新增一個工具,用來分析高山美人茶eupai.net應(yīng)用程序所依賴的profile,有三個參數(shù)比較常用-p,-v,-rimportjava.util.Set;importjava.util.HashSet;publicclassDeps{publicstaticvoidmain(String[]args){System.out.
5、println(Math.random());SetStringset=newHashSet();}}**************PROFILE********************jdeps-PDeps.classDeps.class-LibraryJavaJavaVirtualMachinesjdk1.8.0.jdkContentsHomejrelibrt.jarunnamed(Deps.class)-java.iocompact1-java.langcompact1-java.utilcompact1**************VERBOSE******************
6、**jdeps-vDeps.classDeps.class-LibraryJavaJavaVirtualMachinesjdk1.8.0.jdkContentsHomejrelibrt.jarDeps(Deps.class)-java.io.PrintStream-java.lang.Math-java.lang.Object-java.lang.String-java.lang.System-java.util.HashSet**************RECURSIVE********************jdeps-RDeps.classDeps.class-LibraryJa
7、vaJavaVirtualMachinesjdk1.8.0.jdkContentsHomejrelibrt.jarunnamed(Deps.class)-java.io-java.lang-java.utilLibraryJavaJavaVirtualMachinesjdk1.8.0.jdkContentsHomejrelibjce.jar-LibraryJavaJavaVirtualMachinesjdk1.8.0.jdkContentsHo