Для чого ці різні версії Java?


63

Я збираюся розпочати мандрівку Java (я вже намагався в C ++), але я дуже заплутався в усіх різних версіях Java:

  • JavaSE
  • JavaEE
  • JavaFX
  • тощо.

Хтось може їх детально пояснити?

Відповіді:


107

Java власне

Java Standard Edition - це "звичайна" версія, призначена для загальних обчислень. Він, як і всі інші варіанти Java, є сильно, статично набраним, байт-кодом, об'єктно-орієнтованою мовою, що працює на віртуальній машині з повністю автоматичним збиранням сміття. Він має більшість особливостей мови. Прикладами програм можуть бути такі програми, як Minecraft або ArgoUML. Його можна запустити як окремий додаток для настільних ПК або вбудований додаток на веб-сторінці у вигляді аплета.

Java Enterprise Edition не є іншою мовою, але це специфікації інтерфейсу, призначені для створення програмного забезпечення, що працює в рамках реалізації сервера додатків. Основна відмінність тут полягає в тому, що він призначений для розгортання до серверів прикладних програм, які відповідають специфікаціям інтерфейсу Enterprise Edition; Java SE можна використовувати для запису автономних серверів, але не включає стандартизовані інтерфейси та технічні характеристики, побудовані таким чином, як Java EE. Прикладами можуть бути програми, розроблені для роботи на Glassfish (реалізація посилань на Java EE), JBoss тощо.

Java Micro Edition - це Java, призначена для роботи на мобільних пристроях. Слід зазначити, що це не те саме, що в Android. Java ME призначена для роботи з мобільним обладнанням краще, ніж Java SE. Я використовую Pantec Ease як мобільний телефон, він працює під управлінням Java ME.

Java Card навіть "менший", орієнтований на реально низькі пристрої на зразок смарт-карт ATM. Так, деякі з них насправді мають Java.

JavaFX - це основа, створена для створення програмного інтерфейсу для багатофункціональних клієнтів.

JVM мова Сім'я

По-перше, JVM . Це віртуальна машина на основі стека, що працює на компільованому байт-коді, який дуже схожий на мову складання. Оптимізація може змусити її працювати досить швидко у дуже спеціалізованих ситуаціях.

Це все для власне речей Java Java, тепер для речей, які люди зазвичай використовують у JVM. Усі ці мови містять інтеропи Java і зазвичай можуть викликати більшість або всі бібліотеки Java.

Groovy - це об'єктно-орієнтована, динамічно набрана мова з більш лаконічним синтаксисом, який виставляється як легша, потужніша альтернатива Java. Він був розроблений як своєрідна мова розширення для Java, що дозволяє майже перетягувати Java-файли в програми Groovy. Він має рамки, зазвичай пов'язані з ним для веб-розробки, відомий як Grails .

Scala - досить недавня (2003 р.) Гібридна об'єктно-орієнтована / функціональна мова, яка розроблена таким чином, щоб вона була дуже масштабованою, звідси і назва. Twitter - важкий користувач Scala.

Clojure - це недавня (2007) функціональна мова родини Лісп. Він створений для важких паралельних програмувань з самого початку. У мене немає хорошого прикладу програмного забезпечення для цього, але існує ряд компаній, які використовують його.

Jython та JRuby - версії байт-кодів Java для Python та Ruby відповідно.

Існує ряд інших мов для СВМ там, як Яскелл (Haskell для JVM), але вони, як правило, неясні / академічні експерименти.

Супутні речі

Android використовує Java, але працює на реєстрі Dalvik. На даний момент Далвік є об’єктом судового позову проти Google, його усиновлювача. Android по суті є Java SE з іншим набором бібліотек.

Netbeans та Eclipse - це два, про які йдеться в основному про Java IDE. Якщо ви ставите запитання один проти іншого, викликте закриття, і я не маю на увазі концепцію програмування.

Неспоріднені речі

Javascript - це не Java ... взагалі. Було названо, що скористатись популярністю Java і незрозумілість дратує з тих пір.

Носоріг в кімнаті

Rhino - це інтерпретатор Javascript, який перетворює Javascript Code в код Java, який потім можна десь запустити. Це не окрема мова "сама по собі", але як і все інше має свій набір вигадок. Носоріг розроблений Mozilla як альтернатива їх інтерпретатору SpiderMonkey на базі C. Rhino зазвичай використовується для вбудовування Javascript у програму Java.

Nashorn , розроблений Oracle (можливо, з німецьким рівнем ефективності) для JDK 8, представляється новим стандартом для вбудованого Javascript у Java. Це означало б, що Rhino більше не використовується для основної реалізації Java. Що це означає для проекту Rhino, наразі незрозуміло.


1
Дуже дякую! Ось що я шукав :) Ще одне питання: J2SE, J2EE і т. Д. Це лише новіші версії SE, EE тощо?
Патрик

8
Так, J2EE та J2SE - це версія другої версії Java Enterprise Edition, відповідно стандартної версії. Ця схема іменування більше не дотримується. Поточні версії називаються Java SE 6 (або 5/7) та Java EE 5 (або 6).
БенР

1
Є Java для смарт-карт? Розум хизується.
Меган Уокер

1
Одна відповідь, щоб правити ними всі!
користувач

1
Оскільки JDK8, носоріг застарілий (видалений?) Нашорн - новий Носоріг.
Сільвіу Бурча
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.