Java… język programowania, który podobnie jak PHP od wielu lat i przez wiele osób jest sukcesywnie uśmiercany. Pytanie brzmi, czy słusznie? Java jest technologią, która może mieć zastosowanie w wielu obszarach! Aplikacje WWW, gry, programy desktopowe, apki terminalowe, no i kilka lat temu mieliśmy jeszcze applety. Java ma się bardzo dobrze, dla wielu firm jest solidnym fundamentem w powstających systemach i osobiście uważam, że trend jej popularności utrzyma się przez kolejne lata. Chyba warto poświęcić chwilę na programowanie w Javie i sprawdzić w jaki sposób działa? 🤨
Całość podzieliłem na kilka artykułów i filmów na moim kanale YouTube. Dzięki temu materiał będzie łatwiej przyswajalny, każdy z ważniejszych tematów będzie mógł być dokładniej opisany/omówiony, a ja będe miał więc wpisów na blogu 😉
Czym jest Java?
Jak już wiesz po krótkim wstępie, Java jest wszechstronnym językiem programowania, który od lat cieszy się dużym zainteresowaniem programistów. Stworzona przez firmę Sun Microsystems (aktualnie Oracle Corporation) w 1995 roku wraz z Patrickiem Naughtonem i Jamesem Goslingiem, Java szybko zdobyła popularność dzięki swojej niezawodności, przenośności i obszernej społeczności programistycznej.
Co ją wyróżniało na tle innych języków programowania? Java powstała z myślą o tworzeniu aplikacji, które mogą działać na różnych platformach, niezależnie od architektury sprzętowej. Jak to możliwe? Dzięki idei „Write Once, Run Anywhere” (WORA), która oznacza, że kod napisany w Javie może być skompilowany raz i uruchamiany na wielu platformach, które mają zainstalowaną maszynę wirtualną Javy (JVM), np. Windows, Linux, MacOS, itd.
Hmm… A jeszcze bardziej w skrócie?
Jeśli napiszesz i skompilujesz program na Windowsie, bez problemu uruchomisz go na innym systemie. Wystarczy, że przeniesiesz bytecode – pliki z rozszerzeniem .class (wynik kompilacji) – na inny system i uruchomisz JVM, który przetłumaczy je na kod maszynowy dostosowany do danej platformy, tyle!
Kompilacja, JVM, bytecode, interpreter… Ale o co w tym wszystkim chodzi?!
Spokojnie, prędzej czy później przejdziemy przez każde z tych pojęć 🫡
Jak uruchomić programy napisane w Javie?
Co takiego wyjątkowego i oryginalnego ma w sobie Java? Wspomniany już JVM, który zdjął z programistów ciężar dedykowanego kompilowania programów pod różne systemy i ich architektury. Twórcy Javy stwierdzili, że dostarczą rozwiązanie, które będzie służyć za pewnego rodzaju most łączący programy Javy ze środowiskiem uruchomieniowym.
Jak już wiesz, JVM odpowiada za interpretację i wykonanie bajtkodu ale to nie jedyne jego zadanie! Zarządza też np. pamięcią, automatycznie usuwając nieużywane obiekty, poprzez mechanizm zwany „garbage collectorem”. Oprócz tego, dostarcza m.in. mechanizmy do obsługi wielowątkowości, synchronizacji i zarządzania wyjątkami, co pomaga programistom tworzyć bezpieczne oraz wydajne aplikacje.
Przy okazji mała ciekawostka! Powstało więcej języków wykorzystujących JVM! Java, Kotlin, Scala, Groovy, Jython, JRuby to tylko kilka z nich (po więcej przykładów możesz zerknąć TUTAJ).
Nie chciałbym teraz wchodzić w szczegóły działania kompilacji… Uważam, że opowiadanie o tym na konkretnych przykładach sprawdzi się dużo lepiej ale zapamiętaj proszę dwie rzeczy:
- Kod Javy piszemy w plikach z rozszerzeniem .java. Zadaniem kompilatora jest przetłumaczenie ich na bytecode, który umieszczany jest w plikach z rozszerzeniem .class.
- Pliki .class są w pewnym sensie pakowane i kompresowane poprzez umieszczanie ich w plikach wykonywalnych z rozszerzeniem .jar.
I to właśnie plik .jar jest kluczem do uruchomienia aplikacji! Jeżeli nie korzystamy z żadnego IDE (Integrated Development Environment), program możemy uruchomić ręcznie z poziomu terminala/konsoli. Wystarczy wykonać poniższe polecenie z poziomu katalogu, w którym znajduje się jar’ek:
java -jar app-name.jar
Po wykonaniu tego polecenia stery przejmuje JVM zainstalowany na komputerze, który m.in. tłumaczy bytecode (pliki .class), na kod zrozumiały dla maszyny.
A czy za każdym razem trzeba uruchamiać program z poziomu „czarnego okienka”?
Oczywiście, że nie! IDE typu IntelliJ IDEA, Eclipse czy Netbeans posiadają wbudowane mechanizmy, które całkowicie automatyzują ten proces. Wystarczy jedno kliknięcie, które startuje kompilację, budowanie .jar’a i aplikację.
Kod w Javie
Jak każdy język programowania, Java ma swoją strukturę, składnię, styl pisania, itd. Poniżej znajduje się kilka prostych linii kodu, których zadaniem jest wyświetlenie napisu „Hello” w konsoli. Niewiele ale myślę, że tyle wystarczy aby zrozumieć podstawy podstaw.
1. package pl.zz
Deklaracja paczki tworzącej pewną przestrzeń nazw, w której przechowywane są klasy. Paczki pomagają zorganizować kod, zapanować nad dużą ilością klas i dużym projektem. Co ciekawe, słowo package może być pierwszą linią w pliku .java lecz nie musi! Jeżeli go brakuje oznacza to, że klasy są umieszczane w domyślnym pakiecie.
2. public class Main
- public – modyfikator dostępu, który mówi kompilatorowi jaki jest poziom dostępności do danej klasy. Jest to jedna z podstaw koncepcji programowania obiektowego – hermetyzacja / enkapsulacja. Mamy do dyspozycji cztery typy: publiczne (public), chronione (protected), prywatne (private) lub domyślne;
- class – słowo kluczowe wykorzystywane do deklarowania klasy;
- Main – nazwa klasy (zaczynamy z wielkiej litery).
3. /** */ i //
Komentarze są sposobem np. na opisanie konkretnej funkcjonalności czy fragmentu kodu bezpośrednio w plikach .java. Mogą mieć postać jednej lub wielu linii tekstu.
Przy okazji warto zaznaczyć, iż używanie komentarzy w kodzie jest powszechnie oceniane jako jedna ze złych praktyk. Kod powinien być jak książka, czytając go od góry do dołu wszystko powinno być jasne i zrozumiałe 😉 Mogą jednak zdarzyć się przypadki, w których możliwość ich pisania jest przydatna.
4. public static void main (String [ ] args)
- public – publiczny modyfikator dostępu;
- static – oznacza, iż metoda może być użyta, nawet jeśli nie istnieją żadne obiekty klasy, w której została zdefiniowana;
- void – deklaracja typu jaki zwraca metoda. Metody mogą zwracać przeróżne typy danych, np.: tekst, liczbę, znak, tablicę, listę, itd., itd. A wszystko zależy od potrzeb i sytuacji. W tym konkretnym przypadku metoda nie zwraca nic, kod się wykona i tyle, koniec;
- main – nazwa metody (zaczynamy z małej litery);
- String[] args – parametry jakie metoda może przyjąć podczas wywołania. W tym przypadku jest to tablica stringów (ciągów znaków), np.: „test1”, „test2”, „test3”.
5. System.out.println(„Hello”);
Wyświetlenie „Hello”, przekazywanego w postaci tekstu (stringa) jako argument metody println.
Choć wszystko może się wydawać trudne, niezrozumiałe i kosmiczne, to tak naprawdę są podstawy. Przejdziemy sobie przez to wszystko w tutorialu na YT i sam się przekonasz, że to łatwizna! Dodamy do tego bazy danych i finalnie zrobimy jakiś projekcik 💪
Popularność Javy
No dobrze, a jak możemy sprawdzić czy rzeczywiście w tej Javie jest tyle projektów, a co za tym idzie… ofert pracy? Aktualnie branża IT w Polsce (i nie tylko) przechodzi mocne zawirowanie, przez co ciężko wprost powiedzieć, że technologia A da większe szanse na znalezienie pracy niż technologia B. Ale zerknijmy na statystyki za rok 2022 🤔
Według raportu wynagrodzeń od Just Join IT, Java jest w top 3 technologii, do których poszukiwani byli specjaliści.
I pozornie mogłoby się wydawać, że Java wypada dość słabo w porównaniu chociażby z JavaScriptem, lecz po głębszej analizie raportu możemy zauważyć coś bardzo interesującego! Okazuje się, że na JS rzeczywiście było najwięcej ofert pracy ale jednocześnie było też najwięcej złożonych CV. Java w analogicznym zestawieniu wypadła zdecydowanie lepiej. Co to oznacza? Że jeszcze kilka miesięcy temu, dzięki odpowiedniej analizie rynku można było zwiększyć swoje szanse na wejście do branży IT. Teraz to już nie jest takie proste…
Cały raport od JJIT został omówiony w pierwszym odcinku CodeCast’u 😉
Kilka słów na koniec
Oby tych kilka akapitów wstępniaka do Javy nie odstraszyło Cię… A może jest właśnie wręcz przeciwnie? Może wzbudziłem w Tobie ciekawość, dzięki której wspólnie przejdziemy przez podstawy, kończąc naukę jakimś fajnym projektem? 🤜🤛
Co warto warto zapamiętać z tego artykułu?
- Java nie umiera, ma się bardzo dobrze i myślę, że przez wiele kolejnych lat utrzyma się w topce języków programowania.
- W Javie można tworzyć aplikacje WWW, desktopowe, gry, apki mobilne, itd.
- Java zyskała ogromną popularność m.in. dzięki niezależności od architektury i sprzętu.
- Programy kompilowane są do bajtkodu (.java -> .class), które następnie są interpretowane i tłumaczone na język maszynowy przez JVM.
- Programy gotowe do uruchomienia, „pakowane” są do plików .jar, które można wystartować z poziomu IDE lub polecenia w terminalu.
- JVM to program, który instalujemy na komputerze. To właśnie JVM odpowiada m.in. za interpretowanie bajtkodu na język maszynowy, zarządzanie pamięcią, wielowątkowość, itd.
- Programowanie w Javie nie jest tak trudne jak się wydaje!
Daj lajka i czytaj dalej!
Jeżeli chcesz być na bieżąco z artykułami i jesteś ciekawy co będzie dalej, daj lajka na moim profilu FB, a przede wszystkim zapisz się do newslettera! Spodobał Ci się artykuł? Z pewnością zaciekawią Cię inne wpisy na blogu lub tutoriale i poradnik na moim kanale YouTube!
Dzięki za Twój czas, widzimy się niebawem! 🫡