Java SE 嵌入式和 Java ME

标签 java java-me java-8

Java SE 8 embedded 和 Java ME 8 似乎有相似的目标。 它们在 API、性能和许可方面有何区别?

最佳答案

甲骨文 Java SE Embedded和甲骨文 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 相比,还有某些 JVM 和 Java 语言功能在 ME 8 中不存在,例如用户定义的类加载器、反射、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”。请注意,这是早期工作,没有 promise 的产品计划在 ME 8 环境中支持 lambda。

关于Java SE 嵌入式和 Java ME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25939263/

相关文章:

java - 这里的运行时类型对象是什么

java - 将 Java SE 类添加到 Java ME 阅读 PDF

xml - 使用 JME(或 J2ME)使用 REST 服务

java - 如何在过滤之后或之前对元素进行排序

java - 如何扩展程序以声明最小的数字?

java - 编写递归方法来计算具有 n 个元素和 k 个组的组数

java - Java ME 中字节数组中的 Char

java-8 - java防止了很多if并用设计模式替换它

java - Java 8 中的 Swing 带来了哪些新变化?

java - Hibernate删除的对象应该重新保存