fre*_*asy 8 java java-me java-8
Java SE 8嵌入式和Java ME 8似乎有类似的目标.它们在API,性能和许可方面有什么区别?
Stu*_*rks 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规范.(需要点击许可.)
在这种环境中,有一些工作正在支持lambda表达式; 请参阅JVMLS 2014会谈页面,并查看Oleg Pliss的"嵌入式JVM上的闭包".请注意,这是早期工作,并且没有承诺的产品计划在ME 8环境中支持lambdas.