Java SE嵌入式和Java ME

时间:2014-09-19 17:21:47

标签: java java-me java-8

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

2 个答案:

答案 0 :(得分:13)

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,例如各种ARM处理器,具有硬浮点或软浮点,在几种嵌入式Linux配置上。典型配置包括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 Specification。 (需要点击许可。)

在这种环境中,有一些工作正在支持lambda表达式;请参阅JVMLS 2014 talks page并查找Oleg Pliss的“嵌入式JVM上的闭包”。请注意,这是早期工作,并且没有承诺的产品计划在ME 8环境中支持lambdas。

答案 1 :(得分:0)

正如Stuart所说的,您可以在Java oracle se嵌入式常见问题中找到相同的内容:问:它与Java ME有何不同?

Java ME和Java SE Embedded解决了嵌入式市场的不同细分市场。 Java ME CLDC和CDC产品设计用于资源受限的设备,包括手机,手机和媒体播放器。 CLDC和CDC的API比Java SE更受限制,但使这些ME产品可以支持占用空间小的设备。 Java SE Embedded提供了Java SE的丰富功能,并且针对高端嵌入式设备-通常,这些设备至少具有32MB RAM和32MB ROM。