Do czego służą te różne wersje Java?


63

Właśnie zaczynam swoją podróż po Javie (już dabłem w C ++), ale bardzo się mylę co do różnych wersji Java:

  • JavaSE
  • JavaEE
  • JavaFX
  • itp.

Czy ktoś może to szczegółowo wyjaśnić?

Odpowiedzi:


107

Java Właściwa

Java Standard Edition to „normalna” wersja przeznaczona do ogólnych zastosowań komputerowych. Podobnie jak wszystkie inne warianty Java, jest silnie, statycznie typowanym, skompilowanym kodem bajtowym, obiektowym językiem uruchomionym na maszynie wirtualnej z całkowicie automatycznym usuwaniem śmieci. Ma większość funkcji języka. Przykładami aplikacji mogą być aplikacje takie jak Minecraft lub ArgoUML. Może być uruchamiany jako samodzielna aplikacja komputerowa lub aplikacja osadzona na stronie internetowej jako aplet.

Java Enterprise Edition nie jest innym językiem, ale specyfikacjami interfejsu zaprojektowanymi do tworzenia oprogramowania działającego w ramach implementacji serwera aplikacji. Główną różnicą jest to, że jest przeznaczony do wdrażania na serwerach aplikacji, które są zgodne ze specyfikacjami interfejsu Enterprise Edition; Java SE może być używana do pisania niezależnych serwerów, ale nie zawiera standardowych interfejsów i specyfikacji zbudowanych w taki sposób, jak Java EE. Przykładami mogą być aplikacje przeznaczone do działania na Glassfish (implementacja referencyjna Java EE), JBoss itp.

Java Micro Edition to Java zaprojektowana do uruchamiania na urządzeniach mobilnych. Należy zauważyć, że to nie to samo, co Android. Java ME jest zaprojektowany do radzenia sobie ze sprzętem mobilnym lepiej niż Java SE. Używam Pantec Ease jako telefonu komórkowego, na którym działa Java ME.

Karta Java Card jest nawet „mniejsza”, a jej celem są naprawdę tanie urządzenia, takie jak karty Smart ATM. Tak, niektóre z nich mają Java.

JavaFX to platforma zaprojektowana do tworzenia aplikacji GUI Rich Internet Client.

Język JVM Rodzina

Po pierwsze, JVM . Jest to maszyna wirtualna oparta na stosie, na której działa skompilowany kod bajtowy, który przypomina język asemblera. Optymalizacja może sprawić, że będzie działać dość szybko w bardzo wyspecjalizowanych sytuacjach.

To wszystko w przypadku rzeczywistych Oracle Java Stuff, teraz dla rzeczy, których ludzie często używają w JVM. Wszystkie te języki mają funkcje Java i zazwyczaj mogą wywoływać większość lub wszystkie biblioteki Java.

Groovy to zorientowany obiektowo, dynamicznie pisany język z bardziej zwięzłą składnią, która jest rozliczana jako łatwiejsza, bardziej wydajna alternatywa dla Javy. Został zaprojektowany jako rodzaj rozszerzenia języka Java, umożliwiając prawie przeciąganie i upuszczanie plików Java do programów Groovy. Ma platformę powszechnie z nim związaną do tworzenia stron internetowych znaną jako Grails .

Scala to dość nowy (2003) hybrydowy zorientowany obiektowo / funkcjonalny język, który został zaprojektowany pod kątem dużej skalowalności, stąd nazwa. Twitter jest dużym użytkownikiem Scali.

Clojure jest najnowszym (2007) językiem funkcjonalnym rodziny Lisp. Od samego początku jest przeznaczony do intensywnego programowania współbieżnego. Nie mam dobrego przykładu oprogramowania dla tego, ale wiele firm go używa.

Jython i JRuby to wersje kodu bajtowego Java odpowiednio Python i Ruby .

Istnieje wiele innych języków dla JVM, takich jak Jaskell (Haskell dla JVM), ale zwykle są one niejasne / eksperymenty naukowe.

Powiązane rzeczy

Android wykorzystuje Javę, ale działa na komputerze opartym na rejestrze Dalvik. Dalvik jest obecnie przedmiotem procesu przeciwko Google, jej przysposabiającemu. Android to zasadniczo Java SE z innym zestawem bibliotek.

Netbeans i Eclipse to dwa najczęściej mówione o IDE Java. Zadawanie pytań na temat jednego kontra drugiego wywoła zamknięcie i nie mam na myśli koncepcji programowania.

Niepowiązane rzeczy

JavaScript to wcale nie Java ... Zostało nazwane tak, aby wykorzystać popularność Javy, a zamieszanie jest irytujące.

Nosorożec w pokoju

Rhino to interpreter Javascript, który zamienia kod JavaScript w kod Java, który można gdzieś uruchomić. Nie jest to osobny język „per se”, ale jak wszystko inne ma swój własny zestaw dziwactw. Rhino jest rozwijany przez Mozillę jako alternatywa dla ich opartego na C interpretera SpiderMonkey. Rhino jest zwykle używane do osadzania Javascript w programie Java.

Nashorn , opracowany przez Oracle (prawdopodobnie z niemieckimi poziomami wydajności) dla JDK 8, wydaje się być nowym standardem dla wbudowanego Javascript w Javie. Oznaczałoby to, że Rhino nie jest już używany do głównej implementacji Java. Co to oznacza dla projektu Rhino jest w tej chwili niejasne.


1
Wielkie dzięki! Właśnie tego szukałem :) Jeszcze jedno pytanie: J2SE, J2EE itp. To tylko nowsze wersje SE, EE itp.?
Patryk

8
Tak, J2EE i J2SE to dwie wersje Java Enterprise Edition i odpowiednio edycja standardowa. Ten schemat nazewnictwa nie jest już przestrzegany. Obecne wersje są nazywane Java SE 6 (lub 5/7) i Java EE 5 (lub 6).
BenR

1
Czy jest Java dla kart inteligentnych? Umysł drży.
Megan Walker,

1
Jedna odpowiedź, by rządzić nimi wszystkimi!
użytkownik

1
Od wersji JDK8 nosorożec jest przestarzały (usunięty?). Nashorn to nowa nosorożec.
Silviu Burcea
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.