2014-09-19 9 views
8

Java SE 8 incorporato e Java ME 8 sembrano avere obiettivi simili. Qual è la differenza tra loro per quanto riguarda le API, le prestazioni e la licenza?Java SE incorporato e Java ME

+0

Trovato questo collegamento, forse utile per alcuni futuri utenti - https://terrencebarr.wordpress.com/2013/04/19/embedded-choices-java-me-vs-java-se/ – rents

risposta

11

Oracle Java SE Embedded e Oracle Java ME Embedded sono entrambi prodotti Oracle. Dato che sono solo un ingegnere (e questo è StackOverflow), limiterò i miei commenti alle tecnologie e metterò da parte il posizionamento sul mercato e gli argomenti relativi alle licenze. Per informazioni su questi argomenti, visita le pagine dei prodotti collegati o contattami e posso metterti in contatto con qualcuno.

Java SE Embedded è (o può essere, a seconda della configurazione) un runtime Java SE completo, proprio come JRE/JDK per il desktop. Presenta la JVM HotSpot con compilatore JIT e il set completo di librerie di classi Java SE, o per ridurre il footprint statico, può essere configurato per supportare uno dei tre profili compatti definiti in Java SE 8. Supporta anche piattaforme non supportate dal desktop Java, come una varietà di processori ARM, con hard o soft floating point, su diverse configurazioni Linux embedded. Le configurazioni tipiche includono 32 MB di RAM e 10 MB-48 MB di spazio statico, a seconda del profilo compatto o del JRE completo selezionato.

Java ME Embedded è destinato a configurazioni embedded molto più piccole rispetto a SE Embedded. Ha una JVM con un compilatore JIT (la JVM "Monty") ma che è progettata per ridurre l'overhead e l'efficienza dello spazio invece delle prestazioni di runtime ottimizzate. Ci sono anche alcune caratteristiche di JVM e Java Language non presenti in ME 8 rispetto a SE 8, come ad esempio classloader definiti dall'utente, reflection, JNI, invokedynamic, handle di metodo e espressioni lambda. Java ME 8 dispone anche di una libreria di classi con sottosistemi radicali, molto più piccola persino del profilo SE 8 Compact-1. Le configurazioni tipiche avranno 128K di RAM e 1MB di impronta statica. Per una specifica completa di questo ambiente (specifiche sottoinsieme JVM, specifiche sottoinsiemi lingua e API librerie classe) vedere JSR-360 Specification. (Richiede la licenza di click-through.)

C'è un lavoro in corso per supportare espressioni lambda in questo ambiente; vedere lo JVMLS 2014 talks page e cercare "Closures on Embedded JVM" di Oleg Pliss. Si noti che questo è un lavoro precoce, e non ci sono piani di prodotti impegnati a supportare lambda nell'ambiente ME 8.