2014-09-19 64 views
8

Java SE 8嵌入式和Java ME 8似乎有類似的目標。 它們在API,性能和許可證方面有什麼區別?Java SE嵌入式和Java ME

+0

找到這個鏈接,可能對一些未來的搜索者有用 - https://terrencebarr.wordpress.com/2013/04/19/embedded-choices-java-me-vs-java-se/ – rents 2016-01-13 10:55:51

回答

11

Oracle Java SE Embedded和Oracle Java ME Embedded都是Oracle產品。由於我只是一名工程師(這是StackOverflow),我將我的意見侷限於這些技術,並擱置市場定位和許可主題。有關這些主題的信息,請訪問鏈接的產品頁面,或與我聯繫,我可以讓您與某人聯繫。

Java SE Embedded是一個完整的Java SE運行庫(或可能取決於配置),就像桌面的JRE/JDK一樣。它具有帶JIT編譯器和全套Java SE類庫的HotSpot JVM,或者爲了減少靜態佔用空間,它可以配置爲支持Java SE 8中定義的三個緊湊配置文件之一。它還支持桌面不支持的平臺Java,例如各種ARM處理器,在幾種嵌入式Linux配置上具有硬或軟浮點。典型配置包括32MB的RAM和10MB-48MB的靜態空間,具體取決於選擇哪個緊湊配置文件或完整的JRE。

Java ME Embedded針對比SE Embedded小得多的嵌入式配置。它有一個帶有JIT編譯器(「Monty」JVM)的JVM,但其設計用於低開銷和空間效率,而不是優化運行時性能。與SE 8相比,ME 8中還沒有某些JVM和Java語言功能,例如用戶定義的類加載器,反射,JNI,invokedynamic,方法句柄和lambda表達式。 Java ME 8還具有從根本上子集的類庫,比SE 8 Compact-1配置文件小得多。典型配置將具有128K的RAM和1MB的靜態佔用空間。有關此環境的完整規範(JVM子集規範,語言子集規範和類庫API),請參閱JSR-360 Specification。 (需要點擊牌照。)

有一些工作正在進行中,以支持此環境中的lambda表達式;請參閱JVMLS 2014 talks page,並查找Oleg Pliss的「嵌入式JVM上的閉包」。請注意,這是早期工作,並且沒有承諾的產品計劃來支持ME 8環境中的lambdas。