成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java 8新特性探究-精簡的JRE詳解

移動開發 Android
我們來詳細解釋compact profile相關知識,字面上翻譯是緊湊的配置文件,但我認為緊湊的JRE更容易理解,或者精簡的JRE .

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

好處

 

1.更小的Java環境需要更少的計算資源。

2.一個較小的運行時環境可以更好的優化性能和啟動時間。

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

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

概念

緊湊的JRE分3種,分別是compact1、compact2、compact3,他們的關系是compact1<compact2<compact3,他們包含的API如下圖所示

使用javac根據profile編譯應用程序

 

javac –bootclasspath, or javac –profile <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

使用工具開發的效果

JPEDS工具使用

java8新增一個工具,用來分析應用程序所依賴的profile,有三個參數比較常用 -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<String> 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
   <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)

在linux上構建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大致的占用空間 

總結

 

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

另外該特性也是為java9的模塊化項目做準備,模塊化特性是javaer所期待的特性。他是解決業務系統復雜度的一個利器,當然OSGI也是相當的出色。但osgi對于新學者來說未免太復雜了。

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

責任編輯:chenqingxiang 來源: oschina
相關推薦

2014-04-16 07:43:31

Java 8JRE

2014-07-15 14:48:26

Java8

2014-07-14 11:34:53

Java 8Nashorn

2014-04-15 15:45:22

Java8Java8教程

2014-10-20 13:57:59

JavaFX 8Java 8

2014-04-15 16:01:00

Java8泛型

2014-07-15 13:57:53

Java8

2014-04-15 09:53:54

Java8類型注解

2014-05-14 10:02:17

Java 8StampedLock

2014-04-16 07:48:56

Java 8Permgen

2021-02-22 11:51:15

Java開發代碼

2014-07-15 15:01:01

Java8

2014-07-15 13:54:09

Java8

2014-03-25 10:20:37

Java 8新特性

2023-07-03 08:20:35

MySQL窗口函數

2014-04-16 07:29:02

Java8Java日期

2013-05-02 09:14:19

Java 8Java 8的新特性

2014-05-05 09:58:01

2013-04-09 12:59:21

WindowsPhon

2013-07-29 15:13:35

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品免费视频一区 | 成人午夜在线观看 | 国产成人在线观看免费 | 91精品国产综合久久婷婷香蕉 | 色婷婷一区二区三区四区 | 久久网国产 | 欧美日韩在线一区二区 | 亚洲va在线va天堂va狼色在线 | 日韩成人在线观看 | 一区二区三区视频在线 | 欧美αv | 久久久精品网 | 中文字幕乱码一区二区三区 | 国产日产精品一区二区三区四区 | 国产午夜三级一区二区三 | 色综合99| 日韩精品免费 | 成人区一区二区三区 | 成人久久一区 | 久久久成人网 | www.久久国产精品 | 黄色一级视频 | 欧美片网站免费 | 国产a视频 | 在线欧美一区 | 国产精品不卡一区 | 亚洲欧美日韩精品 | 91久久久久 | 国产精品视频综合 | 亚洲精品一区二区三区中文字幕 | 黄色在线免费播放 | 在线观看你懂的网站 | 欧美日韩国产一区二区三区 | 亚洲成人av在线播放 | 一区二区三区影院 | 日本一区二区不卡 | 免费视频久久久久 | 国产激情精品 | 一区二区影视 | 国产福利91精品一区二区三区 | 国产在线观看一区二区三区 |