Java SE eingebettet und Java ME

8

Java SE 8 embedded und Java ME 8 scheinen ähnliche Ziele zu haben. Was ist der Unterschied zwischen ihnen bezüglich APIs, Leistung und Lizenz?

    
free_easy 19.09.2014, 17:21
quelle

1 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 Klassenbibliotheks-APIs) finden Sie im JSR-360 Spezifikation (Erfordert Click-through-Lizenz.)

Es gibt einige Arbeiten zur Unterstützung von Lambda-Ausdrücken in dieser Umgebung. Weitere Informationen finden Sie auf der Seite mit JVMLS 2014-Vorträgen . Suchen Sie dort nach "Closures on Embedded JVM" Oleg Pliss. Beachten Sie, dass dies eine frühzeitige Arbeit ist und dass es keine festgeschriebenen Produktpläne für die Unterstützung von Lambdas in der ME 8-Umgebung gibt.

    
Stuart Marks 21.09.2014, 23:55
quelle

Tags und Links