Java SE intégré et Java ME


Java SE 8 embedded et Java ME 8 semblent avoir des objectifs similaires. Quelle est la différence entre eux en ce qui concerne les API, les performances et la licence?

Author: free_easy, 2014-09-19

1 answers

OracleJava SE Embedded et OracleJava ME Embedded sont tous deux des produits Oracle. Puisque je ne suis qu'un ingénieur (et c'est StackOverflow), je vais limiter mes commentaires aux technologies et mettre de côté le positionnement du marché et les sujets de licence. Pour plus d'informations sur ces sujets, veuillez visiter les pages produits liées, ou contactez-moi et je peux vous mettre en contact avec quelqu'un.

Java SE Embedded est (ou peut être, selon la configuration) un runtime Java SE complet, tout comme le JRE / JDK pour le bureau. Il dispose de la JVM HotSpot avec compilateur JIT et de l'ensemble complet des bibliothèques de classes Java SE, ou pour réduire l'empreinte statique, il peut être configuré pour prendre en charge l'un des trois profils compacts définis dans Java SE 8. Il prend également en charge les plates-formes non prises en charge par desktop Java, telles qu'une variété de processeurs ARM, avec virgule flottante dure ou douce, sur plusieurs configurations Linux embarquées. Les configurations typiques incluent 32MB de RAM et 10MB-48MB d'espace statique, selon qui profil compact ou JRE complet est sélectionné.

Java ME Embedded est destiné à des configurations embarquées beaucoup plus petites que SE Embedded. Il a une JVM avec un compilateur JIT (la JVM" Monty") mais qui est conçue pour une faible efficacité de la surcharge et de l'espace au lieu de performances d'exécution optimisées. Il existe également certaines fonctionnalités de langage JVM et Java non présentes dans ME 8 par rapport à SE 8, telles que les chargeurs de classe définis par l'utilisateur, reflection, JNI, invokedynamic, les poignées de méthode et les expressions lambda. Java ME 8 dispose également d'une bibliothèque de classes radicalement sous-définie, beaucoup plus petite même que le profil SE 8 Compact-1. Les configurations typiques auront 128K de RAM et 1MB d'empreinte statique. Pour une spécification complète de cet environnement (spécification de sous-ensemble JVM, spécification de sous-ensemble de langue et API de bibliothèque de classes), voir la spécification JSR-360. (Nécessite un clic de licence.)

Il y a des travaux en cours pour soutenir les expressions lambda dans cet environnement; voir la page JVMLS 2014 talks et recherchez "Closures on Embedded JVM" par Oleg Pliss. Notez qu'il s'agit de travaux préliminaires et qu'il n'existe aucun plan produit engagé pour prendre en charge les lambdas dans l'environnement ME 8.

 13
Author: Stuart Marks, 2014-09-21 23:55:53