日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java8新特性探究-精簡的JRE詳解

Oracle公司如期發(fā)布了Java 8正式版!沒有讓廣大javaer失望。對 于一個人來說,18歲是人生的轉(zhuǎn)折點,從稚嫩走向成熟,法律意味著你是完全民事行為能力人,不再收益于未成年人保護法,到今年為止,java也走過了18 年,java8是一個新的里程碑,帶來了***的諸多特性,lambda表達式,Stream API,新的Date time api,多核并發(fā)支持,重大安全問題改進等,相信java會越來越好,豐富的類庫以及龐大的開源生態(tài)環(huán)境是其他語言所不具備的,說起豐富的類庫,很多同學 就吐槽了,java該減肥了,確實是該減肥,java8有個很好的特性,即JEP161(http://openjdk.java.net/jeps/161 ),該特性定義了Java SE平臺規(guī)范的一些子集,使java應用程序不需要整個JRE平臺即可部署和運行在小型設備上。開發(fā)人員可以基于目標硬件的可用資源選擇一個合適的JRE運行環(huán)境。

目前創(chuàng)新互聯(lián)建站已為上千的企業(yè)提供了網(wǎng)站建設、域名、虛擬主機網(wǎng)站托管運營、企業(yè)網(wǎng)站設計、樺南網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

好處

1.更小的Java環(huán)境需要更少的計算資源。

2.一個較小的運行時環(huán)境可以更好的優(yōu)化性能和啟動時間。

3.消除未使用的代碼從安全的角度總是好的。

4.這些打包的應用程序可以下載速度更快。

概念

緊湊的JRE分3種,分別是compact1、compact2、compact3,他們的關(guān)系是compact1

使用javac根據(jù)profile編譯應用程序

javac –bootclasspath, or javac –profile

如果不符合compact的api,則報錯。

?

1 2 3 4 5 6 7 8 $ 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

使用工具開發(fā)的效果

JPEDS工具使用

java8新增一個工具,用來分析應用程序所依賴的profile,有三個參數(shù)比較常用 -p,-v,-r

?

1 2 3 4 5 6 7 8 9 import java.util.Set; import java.util.HashSet;   public class Deps {   public static void main(String[] args) {     System.out.println(Math.random());     Set set = new HashSet<>();   } }

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 ************** PROFILE ******************** jdeps -P Deps.class  Deps.class -> /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar     (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     (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)

在linux上構(gòu)建profile

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 $ 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

編譯后compact大致的占用空間 

總結(jié)

如今,物聯(lián)網(wǎng)正風行一時。我們看到大量不同的設備在市場上出現(xiàn),每一種的更新速度都越來越快。java需要一個占用資源少的JRE運行環(huán)境,緊湊的 JRE特性的出現(xiàn),希望能帶來以后的物聯(lián)網(wǎng)的發(fā)展,甚至還是會有大量的java應用程序出現(xiàn)在物聯(lián)網(wǎng)上面。目前oracle也發(fā)布了針對 raspberry pi的JRE了。

另外該特性也是為java9的模塊化項目做準備,模塊化特性是javaer所期待的特性。他是解決業(yè)務系統(tǒng)復雜度的一個利器,當然OSGI也是相當?shù)某錾5玱sgi對于新學者來說未免太復雜了。

本文鏈接:http://my.oschina.net/benhaile/blog/177148


分享名稱:Java8新特性探究-精簡的JRE詳解
本文URL:http://www.5511xx.com/article/dhoshsj.html