Java SE 嵌入式和 Java ME
Posted
技术标签:
【中文标题】Java SE 嵌入式和 Java ME【英文标题】:Java SE embedded and Java ME 【发布时间】:2014-09-19 17:21:46 【问题描述】:Java SE 8 Embedded 和 Java ME 8 似乎有相似的目标。 它们在 API、性能和许可方面有什么区别?
【问题讨论】:
找到这个链接,可能对一些未来的搜索者有用 - terrencebarr.wordpress.com/2013/04/19/… 【参考方案1】:Oracle Java SE Embedded 和 Oracle Java ME Embedded 都是 Oracle 产品。由于我只是一名工程师(这就是 ***),我将把我的 cmets 限制在技术上,并将市场定位和许可主题放在一边。有关这些主题的信息,请访问链接的产品页面,或与我联系,我可以让您与某人联系。
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 编译器的 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 的“Closures on Embedded JVM”。请注意,这是早期工作,没有承诺的产品计划来支持 ME 8 环境中的 lambda。
【讨论】:
【参考方案2】:正如 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 的设备。
【讨论】:
以上是关于Java SE 嵌入式和 Java ME的主要内容,如果未能解决你的问题,请参考以下文章