Platforma Java
| Platforma Java | ||
|---|---|---|
|
| ||
| Deweloper(zy) | ||
|
James Gosling i Sun Microsystems https://www.java.com | ||
| Informacje ogólne | ||
| Paradygmat | Zorientowany obiektowo , imperatyw | |
| Pojawił się w | tysiąc dziewięćset dziewięćdziesiąty szósty | |
| Zaprojektowany przez | Sun Microsystems ( Oracle Corporation ) | |
| Najnowsza stabilna wersja | Java Standard Edition 15.0.2 [ 1 ] ( 19 stycznia 2021 (1 rok, 8 miesięcy i 29 dni)) | |
| typ systemu | mocny , statyczny | |
| wdrożenia | OpenJDK , HotSpot i wiele innych | |
| dialekty | Ogólna Java, Pizza | |
| wpływem | Pascal , C++ , Cel-C | |
| wpłynął | C# , J# , JavaScript , PHP , Python | |
| System operacyjny | Wieloplatformowy | |
| Licencja | Proces społeczności GNU GPL / Java | |
Platforma Java to nazwa środowiska komputerowego lub platformy pochodzącej od Sun Microsystems , zdolnej do uruchamiania aplikacji opracowanych przy użyciu języka programowania Java lub innych języków, które kompilują się do kodu bajtowego oraz zestawu narzędzi programistycznych . W tym przypadku platformą nie jest konkretny sprzęt czy system operacyjny , ale raczej maszyna wirtualna odpowiedzialna za uruchamianie aplikacji oraz zestaw standardowych bibliotek oferujących wspólne funkcjonalności.
Platforma jest tak zwana Java Platform (wcześniej znana jako Java 2 Platform [ 2 ] ) i obejmuje:
- Java Platform, Standard Edition lub Java SE (dawniej J2SE).
- Java Platform, Enterprise Edition lub Java EE (dawniej J2EE).
- Java Platform, Micro Edition (Java Platform, Micro Edition) lub Java ME (dawniej J2ME).
Od 2006 roku aktualna wersja Java Platform Standard Edition jest znana jako Java SE 6 jako wersja zewnętrzna i 1.6 jako wersja wewnętrzna. Preferowany jest jednak termin wersja 6. Platforma zawiera kilka różnych technologii. [ 3 ]
technologie Java
Platforma Java składa się z szerokiej gamy technologii, z których każda stanowi część złożonego środowiska programistycznego lub środowiska wykonawczego w czasie rzeczywistym. Na przykład użytkownicy końcowi często wchodzą w interakcję z wirtualną maszyną Javy i standardowym zestawem bibliotek. Ponadto aplikacji Java można używać na różne sposoby, na przykład osadzać je na stronie internetowej . Do tworzenia aplikacji używany jest zestaw narzędzi znany jako JDK (Java Development Kit lub narzędzia programistyczne dla Javy). Technologie, które istnieją na platformie Java to:
Java SE Java EE Java ME Karta Java Java SE
Java SE jest standardową platformą i celem tego samouczka na temat Java, w którym gromadzone są wszystkie podstawowe funkcje języka.
W ramach tych podstawowych funkcjonalności Javy znajdziemy: korzystanie z kolekcji, dostęp do plików z Java IO i NIO oraz baz danych z JDBC, biblioteki do tworzenia aplikacji desktopowych lub webowych takich jak Swing czy JavaFX, biblioteki dla daty i czasu, możliwość tworzenia aplikacje wielowątkowe, możliwości pracy w sieci, zarządzanie treścią XML... zawiera nawet bazę danych Java DB do wykorzystania w pamięci.
Jeśli zaczynasz od Javy, najzwyklejszą rzeczą jest pobranie bibliotek Java SE.
Java EE Java EE została stworzona, aby móc tworzyć aplikacje korporacyjne w języku Java. W ten sposób Java EE zyskuje możliwości tworzenia aplikacji serwerowych z wykorzystaniem technologii takich jak Servlets, JSP czy EJB.
Java EE pozwala nam na tworzenie usług, czy to WSDL (z JAX-WS), REST (z JAX-RS), czy tworzenie websocketów.
Oferuje również API do utrwalania obiektów za pomocą JPA, możliwości przesyłania wiadomości za pomocą Java Message, e-mail za pomocą Java Mail lub zarządzania procesami wsadowymi.
Java ME Java ME to implementacja Javy, która została stworzona do tworzenia aplikacji mobilnych.
Chociaż z biegiem czasu koncentruje się bardziej na rozwoju urządzeń IoT (Internet of Things): telewizorów, czujników, drukarek,...
W ramach Java ME możemy zatem znaleźć:
Java TV, do tworzenia aplikacji w telewizji lub na urządzeniach multimedialnych. Java Embedded, który pozwala nam tworzyć różne profile rozwoju „aplikacji osadzonych”, które również nie posiadają interfejsu graficznego.
Java Cards Jest to technologia Java, która pomaga nam w tworzeniu aplikacji, które będą działały na kartach inteligentnych, czyli takich, które mają chip i małą moc obliczeniową i pamięć
Środowisko wykonawcze Java
Program przeznaczony dla platformy Java wymaga dwóch komponentów w systemie, w którym ma działać: wirtualnej maszyny języka Java (JVM) oraz zestawu bibliotek zapewniających wszelkie usługi, jakich może potrzebować aplikacja. JVM dostarczana przez Sun Microsystems, wraz z implementacją standardowych bibliotek, jest znana jako Java Runtime Environment (JRE) . Środowisko JRE to minimum, które system musi zawierać, aby uruchomić na nim aplikację Java.
Wirtualna maszyna Java
Sercem platformy Java jest powszechna koncepcja „wirtualnego” procesora, który wykonuje programy napisane w języku programowania Java. W szczególności wykonuje kod będący wynikiem kompilacji kodu źródłowego , znany jako bytecode . Ten „procesor” to wirtualna maszyna Java lub JVM (Java Virtual Machine), która jest odpowiedzialna za tłumaczenie ( interpretację lub kompilację w locie) kodu bajtowego na natywne instrukcje platformy docelowej. Dzięki temu ta sama aplikacja Java może być wykonywana na wielu różnych systemach o różnych architekturach, o ile ma odpowiednią implementację JVM. Ten fakt dał początek słynnej frazie: „napisz raz, biegnij gdziekolwiek” (napisz raz, biegnij gdziekolwiek). Warunkiem jest to, że nie są używane żadne wywołania natywne ani funkcje specyficzne dla platformy, a nawet wtedy prawdziwa niezależność platformy nie jest w pełni zapewniona.
Począwszy od wersji JRE 1.2, implementacja maszyn wirtualnych firmy Sun obejmuje kompilator JIT (Just In Time). W ten sposób, zamiast tradycyjnej interpretacji kodu bajtowego, która prowadzi do powolnego wykonywania aplikacji, JIT konwertuje kod bajtowy na kod natywny platformy docelowej. Ta druga kompilacja kodu to kara czasu, ale wynikowy kod natywny jest wykonywany wydajniej i szybciej, niż gdyby był interpretowany. Inne techniki dynamicznej kompilacji kodu w czasie wykonywania pozwalają na dalszą optymalizację kodu, pozostawiając w tyle płytę, która spadła na Javę pod względem jej powolności, a w swoich najnowszych wersjach JVM została zoptymalizowana do tego stopnia, że nie jest już uważana za wolną platformę w zakresie uruchamiania aplikacji.
Nie można jednak powiedzieć, że Java może kompilować kod z maksymalną wydajnością i czerpać korzyści z szybkości natywnego kodu maszynowego. Chociaż kompilatory stają się coraz bardziej zaawansowane, nie wszystkie biblioteki Java mają skojarzony równoważny kod maszynowy do użycia. Na przykład biblioteka „reflect”, która pozwala programistom Java na eksplorację instrukcji dostępnych tylko w czasie wykonywania, jest słabo reprezentowana przez kod maszynowy.
Java nie była pierwszą platformą opartą na koncepcji maszyny wirtualnej, choć to ona cieszy się największym rozpowszechnieniem. Korzystanie z maszyn wirtualnych koncentrowało się przede wszystkim na wykorzystaniu emulatorów w celu wspomagania rozwoju niedobudowanego sprzętu lub systemów operacyjnych, ale JVM została zaprojektowana do implementacji w całości w oprogramowaniu, jednocześnie umożliwiając przenoszenie jej na wszelkiego rodzaju urządzenia. .
Biblioteki Java
W większości dzisiejszych systemów operacyjnych dostępnych jest wiele kodów, które upraszczają zadanie programistyczne. Ten kod zazwyczaj ma postać zestawu bibliotek dynamicznych, które aplikacje mogą wywoływać w razie potrzeby. Ale platforma Java ma być niezależna od bazowego systemu operacyjnego, więc aplikacje nie mogą polegać na funkcjach zależnych od systemu. Platforma Java zapewnia zestaw standardowych bibliotek, które zawierają wiele funkcji wielokrotnego użytku dostępnych we współczesnych systemach operacyjnych.
Biblioteki Java służą trzem celom w ramach platformy Java. Podobnie jak inne standardowe biblioteki, oferują programiście dobrze zdefiniowany zestaw funkcji do wykonywania typowych zadań, takich jak obsługa list elementów lub wyrafinowane operacje na ciągach. Ponadto biblioteki zapewniają abstrakcyjny interfejs do zadań, które są wysoce zależne od sprzętu platformy docelowej i jej systemu operacyjnego. Zadania, takie jak obsługa funkcji sieciowych lub dostęp do plików, zwykle silnie zależą od nie. W powyższym konkretnym przypadku biblioteki java.net i java.io implementują wewnętrznie kod natywny i zapewniają standardowy interfejs dla aplikacji Java do wykonywania takich funkcji. Wreszcie, nie wszystkie platformy obsługują wszystkie funkcje, których oczekuje aplikacja Java. W takich przypadkach biblioteki mogą albo emulować te funkcje, używając tego, co jest dostępne, albo oferować mechanizm sprawdzania, czy dana funkcja jest obecna.
Języki
Samo słowo Java zwykle odnosi się do języka programowania Java , który został zaprojektowany do użytku z platformą Java. Języki programowania wykraczają poza zakres tego, co jest „platformą”, chociaż język programowania Java jest jednym z podstawowych elementów platformy Java. Sam język i środowisko uruchomieniowe są często uważane za jedną całość.
Jednak wiele kompilatorów dla wirtualnej maszyny Javy (JVM) zostało opracowanych poza środowiskiem Sun. Niektóre z tych języków to:
Podobne platformy
Sukces Javy oraz koncepcja i hasło „Napisz raz, biegnij gdziekolwiek” dały początek inicjatywom w tym samym kierunku. Najwyraźniejszą próbą jest platforma .NET firmy Microsoft , która kopiuje większość koncepcji i innowacji z Javy; w rzeczywistości ma implementację Java o nazwie Visual J# (wcześniej znana jako J++ ).
Referencje
- ↑ https://www.oracle.com/java/technologies/javase/15-0-2-relnotes.html
- ^ „Budowanie i wzmacnianie marki Java” . Java (w języku angielskim) . 30 czerwca 2005 . Pobrano 2021-01-23 . ( niedziałający link dostępny w Archiwum Internetowym ; zobacz historię , pierwszą i ostatnią wersję ).
- ^ "Dokumentacja Java SE 6" . Wyrocznia (w języku angielskim) . Pobrano 2021-01-23 .