2014-09-19 14 views
8

Java SE 8 eingebettet und Java ME 8 scheinen ähnliche Ziele zu haben. Was ist der Unterschied zwischen ihnen in Bezug auf APIs, Leistung und Lizenz?Java SE eingebettet und Java ME

+0

Dieser Link gefunden, vielleicht nützlich für einige zukünftige Suchende - https://tercencebarr.wordpress.com/2013/04/19/embedded-choices-java-me-vs-java-se/ – rents

Antwort

11

Oracle Java SE Embedded und Oracle Java ME Embedded sind beide Oracle-Produkte. Da ich nur ein Ingenieur bin (und das ist StackOverflow), werde ich meine Kommentare auf die Technologien beschränken und Marktpositionierung und Lizenzthemen beiseite legen. Für Informationen zu diesen Themen besuchen Sie bitte die verlinkten Produktseiten, oder kontaktieren Sie mich und ich kann Sie mit jemandem in Verbindung setzen.

Java SE Embedded ist (oder kann, je nach Konfiguration) eine vollständige Java SE Runtime, genau wie JRE/JDK für den Desktop. Es bietet die HotSpot JVM mit JIT-Compiler und den vollständigen Satz von Java SE-Klassenbibliotheken. Zur Reduzierung des statischen Footprints kann es zur Unterstützung eines der drei in Java SE 8 definierten kompakten Profile konfiguriert werden. Es unterstützt auch Plattformen, die nicht vom Desktop unterstützt werden Java, wie eine Vielzahl von ARM-Prozessoren, mit harten oder weichen Fließkomma-Punkt, auf mehreren Embedded-Linux-Konfigurationen. Typische Konfigurationen umfassen 32 MB RAM und 10 MB-48 MB statischen Speicherplatz, je nachdem, welches Kompaktprofil oder vollständige JRE ausgewählt ist.

Java ME Embedded zielt auf viel kleinere Embedded-Konfigurationen ab als SE Embedded. Es hat eine JVM mit einem JIT-Compiler (die "Monty" JVM), die jedoch für eine niedrige Overhead- und Platzeffizienz anstelle einer optimierten Laufzeitleistung ausgelegt ist. Es gibt auch bestimmte JVM- und Java-Sprachfunktionen, die in ME 8 im Vergleich zu SE 8 nicht vorhanden sind, wie z. B. benutzerdefinierte Klassenlader, Reflektion, JNI, invitedynamic, Methodenhandles und Lambda-Ausdrücke. Java ME 8 verfügt auch über eine radikal unterteilte Klassenbibliothek, die sogar kleiner ist als das SE 8 Compact-1-Profil. Typische Konfigurationen haben 128 KB RAM und 1 MB statischen Footprint. Eine vollständige Spezifikation dieser Umgebung (JVM-Subset-Spezifikation, Sprache-Subset-Spezifikation und Klassenbibliothek-APIs) finden Sie unter JSR-360 Specification. (Erfordert Click-through-Lizenz.)

Es gibt einige Arbeiten zur Unterstützung von Lambda-Ausdrücken in dieser Umgebung. siehe JVMLS 2014 talks page und suchen Sie nach "Closures on Embedded JVM" von Oleg Pliss. Beachten Sie, dass dies eine frühe Arbeit ist, und es gibt keine festgeschriebenen Produktpläne zur Unterstützung von Lambdas in der ME 8-Umgebung.

Verwandte Themen