嵌入式Java SE和Java ME

free_easy:

嵌入式Java SE 8和Java ME 8似乎有相似的目标。它们在API,性能和许可方面有什么区别?

斯图尔特·马克斯(Stuart Marks):

Oracle Java SE Embedded和Oracle Java ME Embedded都是Oracle产品。由于我只是一名工程师(而这是StackOverflow),所以我将对技术的评论仅限于此,并搁置市场定位和许可主题。有关这些主题的信息,请访问链接的产品页面,或与我联系,我可以与您联系。

Java SE Embedded是(或可以是,取决于配置)完整的Java SE运行时,就像台式机的JRE / JDK一样。它具有带有JIT编译器的HotSpot JVM和完整的Java SE类库,或者为了减少静态占用空间,可以将其配置为支持Java SE 8中定义的三个紧凑概要文件之一。它还支持桌面不支持的平台。 Java,例如在各种嵌入式Linux配置上具有硬或软浮点的各种ARM处理器。典型的配置包括32MB的RAM和10MB-48MB的静态空间,具体取决于选择的是紧凑配置文件还是完整的JRE。

Java ME Embedded的目标嵌入式配置要比SE Embedded小得多。它具有一个带有JIT编译器的JVM(“ Monty” JVM),但其目的是降低开销和空间效率,而不是优化运行时性能。与SE 8相比,ME 8中还存在某些JVM和Java语言功能,例如用户定义的类加载器,反射,JNI,invokedynamic,方法句柄和lambda表达式。Java ME 8还具有基本的子集类库,甚至比SE 8 Compact-1概要文件小得多。典型配置将具有128K RAM和1MB静态占用空间。有关此环境的完整规范(JVM子集规范,语言子集规范和类库API),请参见JSR-360规范(需要点击型许可证。)

在这种环境下,正在进行一些支持lambda表达式的工作。请参阅JVMLS 2014讨论页面,并查找Oleg Pliss的“嵌入式JVM的关闭”。请注意,这是早期工作,并且没有承诺的产品计划在ME 8环境中支持lambda。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章