Blog
Język programowania Java
Język programowania Java został stworzony przez firmę Sun Microsystems. W 1995 roku James Gosling, twórca języka, opublikował go jako istotny element platformy Java (Java 1.0 [J2SE]). Najnowsze wydanie Javy jest oznaczone jako Java Standard Edition 8 – Java SE 8. Wraz z rozwojem języka i ogromną popularnością, powstało wiele jego konfiguracji, które odpowiadają na potrzeby różnych typów platform. Na przykład J2EE dla aplikacji biznesowych czy J2ME dla aplikacji mobilnych.
Najnowsze wersje Javy przemianowano odpowiednio na Java SE, Java EE oraz Java ME. Java gwarantuje, że kod raz napisany może być odczytany gdziekolwiek.
Język Java jest:
Zorientowany obiektowo – w Javie wszystko jest Obiektem. Java może być łatwo rozbudowywana dzięki oparciu na modelu obiektowym.
Niezależny od platformy – W odróżnieniu od innych języków programowania, takich jak C i C++, kiedy program jest skompilowany w Javie, to nie jest kompilowany na potrzeby konkretnej konfiguracji sprzętowej a raczej jako niezależny od platformy kod. Kod jest następnie przesyłany poprzez sieć i interpretowany przez Maszynę Wirtualną Javy – Java Virtual Machine (JVM), niezależnie od platformy, na której został uruchomiony.
Prosty – język Java jest specjalnie zaprojektowany jako łatwy do nauki. Jeśli rozumiesz podstawowy koncept OOP Java, z łatwością go opanujesz.
Bezpieczny – dzięki wbudowanym zabezpieczeniom i autentykacji opartej na publicznemu szyfrowaniu, Java jest wolna od wirusów i możliwości zewnętrznej ingerencji w kod.
Niezależny od architektury – Kompilator Java generuje obiektowy format pliku, dzięki czemu kod może być uruchomiony na wielu procesorach z zainstalowanym środowiskiem Java.
Przenośny – dzięki niezależności architekturalnej i braku zależności specyfikacyjnych język Java jest przenośny. Kompilator Java jest napisany w kodzie ANSI C, z jasnym oznaczeniem mobilności, który należy do podzbioru POSIX.
Solidny – Java stara się wyeliminować sytuacje sprzyjające błędom kodowania poprzez skupienie się na wnikliwym procesie sprawdzania każdej linii kodu – zarówno podczas działania programu jak i podczas kompilowania.
Wielowątkowy – dzięki wielowątkowej funkcjonalności zaimplementowanej w Javie, możliwe jest napisanie programów, które jednocześnie wykonają zadania. Cecha ta pozwala deweloperom na skonstruowanie interaktywnych aplikacji, które działają sprawnie i szybko.
Interpretowany – kod Java jest tłumaczony w locie do natywnych instrukcji procesora – nie jest nigdzie przechowywany. Dzięki temu proces tworzenia jest szybszy i bardziej analityczny, a linkowanie do baz jest stopniowanym i lekkim procesem.
Wydajny – Dzięki wykorzystaniu kompilatorów Just-In-Time, Java zapewnia wysoką wydajność.
Współdzielony – język Java jest zaprojektowany do współdzielenia w środowisku Internetu.
Dynamiczny – język Java jest uznawany za bardziej dynamiczny niż C czy C++ – ponieważ jest zaprojektowany do dostosowywania się do wiecznie ewoluującego środowiska. Programy Java mogą operować ogromnymi ilościami zmiennych informacji, które mogą być wykorzystywane do weryfikacji dostępu do obiektów na bieżąco.
Podsumowanie zasad języka Java:
Wirtualna Maszyna Java (JVM) jest wirtualnym komputerem, który jest uruchomiony na innym komputerze (np. twoim) i wykonuje kod Javy. JVM nie rozumie kodu źródłowego Java – dlatego potrzebny jest kompilator javac, który kompiluje pliki *.java aby uzyskać pliki *.class, zrozumiałe dla JVM. JVM sprawia, że środowisko Java jest przenośne (napisz raz, uruchom wszędzie). Każdy system operacyjny ma inną JVM, ale wynik kompilowania jest taki sam – niezależnie od systemu operacyjnego.
Architektura JVM
Zobaczmy, jak działa JVM:
Ładownia Klas (Class Loader) – ładownia class odczytuje plik .class i zapisuje kod w Obszarze Metod.
Obszar Metod (Method Area) – jest tylko jeden obszar metod w JVM, współdzielony przez wszystkie klasy. Zawiera informacje o poziomie klasy każdego pliku .class.
Stóg (heap) – stóg to część pamięci JVM, gdzie ulokowane są wszystkie obiekty. JVM tworzy obiekt klasy dla każdego pliku .class.
Stos (Stack) – stos także jest częścią pamięci JVM, ale w odróżnieniu od stogu, jest używany do przechowywania tymczasowych wartości.
Rejestr PC (PC Registers) – Ta część JVM jest odpowiedzialna za śledzenie instrukcji – rejestruje, która została wykonana oraz która będzie następna. Ponieważ instrukcje wykonywane są przez wątki, każdy wątek posiada oddzielny Rejestr PC.
Stos wbudowanych metod (Native Method Stack) – wbudowana metoda może uzyskać dostęp do bieżących obszarów danych maszyny wirtualnej.
Interfejs wbudowanych metod (Native Method Interface) – Pozwala kodowi Java wywołać lub zostać wywołanym przez wbudowane aplikacje. Wbudowane aplikacje są programami specyficznymi dla sprzętu i systemu operacyjnego komputera.
Zbieranie śmieci (Garbage Collection) – Instancja klasy jest jawnie utworzona przez kod Java, a po wykorzystaniu zostaje automatycznie zniszczona przez część JVM odpowiedzialną za zarządzanie pamięcią.
JVM vs JRE vs JDK
JRE: Java Runtime Enviroment jest środowiskiem, w którym uruchomiona jest Wirtualna Maszyna Java (JVM). JRE zawiera JVM, biblioteki klas a także inne pliki – poza kompilatorem i debuggerem. Oznacza to, że możesz uruchomić kod Javy w JRE, ale nie możesz tworzyć i kompilować kodu w JRE.
JVM: Jak wspominaliśmy wcześniej, JVM (Java Virtual Machine) uruchamia program dzięki wykorzystaniu klas, bibliotek i plików dostarczanych przez JRE.
JDK: Java Developement Kit jest nadzbiorem JRE. Zawiera wszystko to, co JRE, a dodatkowo wyposażone jest w narzędzia takie jak kompilator, debugger itp.
Dodaj komentarz Anuluj pisanie odpowiedzi
Musisz się zalogować, aby móc dodać komentarz.