Cześć, ostatnio pisałem o kursie programowania na Androida, dziś nadal podobne klimaty, mimo że schodzimy z tej platformy mobilnej a wchodzimy na zwykłe systemy operacyjne. Kurs który chciałbym Wam przybliżyć to materiał który wyszedł z pod pióra ludzi pracujących dla strefakursow.pl ;) jest poziom drugi Kursu Java. Zaczniemy klasycznie, od przedstawienia spisu treści:
Wprowadzenie
- Wstęp
- Platforma Eclipse IDE
- Rozpoczynamy pracę w nowym środowisku
- Omówienie podstawowych zakładek platformy
- Podstawy personalizacji Eclipse’a
Programowanie wielowątkowe
- Wątki w języku Java
- Podstawy sterowania wątkiem
- Tworzenie wątku – implementacja interfejsu Runnable
- Tworzenie wątku – rozszerzenie klasy Thread
- Tworzenie wielu wątków
- Metody isAlive() i join()
- Priorytety wątków
- Synchronizacja – modyfikator synchronized
- Synchronizacja – konstrukcja synchronized
- Komunikacja międzywątkowa
- Zakleszczanie
- Zawieszanie, wznawianie i zatrzymywanie wątków
- Uzyskiwanie stanu wątku
Typy wyliczeniowe
- Podstawy wyliczeń
- Użycie wyliczeń w instrukcjach if oraz switch
- Metody values() i valueOf()
- Wyliczenia Javy jako typy klasowe
- Wyliczenia dziedziczą po klasie Enum
- Inny przykład wyliczenia
Opakowywanie
- Wstęp
- Opakowywanie typów numerycznych
- Opakowywanie typu znakowego
- Opakowywanie typu logicznego
- Automatyczne opakowywanie – podstawy
- Automatyczne opakowywanie i metody
- Automatyczne opakowywanie i wyrażenia
- Automatyczne opakowywanie – podsumowanie
Adnotacje
- Wstęp
- Podstawy tworzenia adnotacji
- Strategie zachowywania adnotacji
- Odczytywanie adnotacji za pomocą refleksji
- Wartości domyślne adnotacji
- Adnotacje znacznikowe
- Adnotacje jednoelementowe
- Niektóre adnotacje wbudowane
Operacje wejścia/wyjścia
- Wstęp do tematyki operacji wejścia i wyjścia
- Odczyt danych z konsoli
- Przykład użycia klasy PrintWriter
- Podstawy zapisu danych do pliku
- Podstawy odczytu danych z pliku
- Przykład kopiowania plików tekstowych
- Automatyczne zamykanie plików
- Przykład programu obliczającego wskaźnik BMI
Inne tematy
- Modyfikator transient oraz volatile
- Operator instanceof
- Modyfikator strict
- Stosowanie asercji
Dodatki
- Dokumentacja Oracle dla języka Java
- Dokumentacja dla platformy Eclipse IDE
- Eclipse Color Themes – uprzyjemniamy środowisko pracy
Pierwszy rozdział to zapoznanie się z Eclipse. Jak widać autorzy zakładają że nie wszyscy przeszli przez poziom pierwszy kursu i na początku przechodzą szybko przez sam edytor – trochę sztuczek jak go spersonalizować np. :) Drugi rozdział to już programowanie, a dokładnie programowania wielowątkowe. Pokazują dwie metody, które służą do stworzenia wątku oraz metody ich synchronizacja, tj. wait(), notify(), notifyAll() i synchronize jako blok i jako słowo kluczowe przy metodzie. Ogólnie fajnie to jest wyjaśnione, przystępnie. Oddzielny filmik poświęcono problemu zakleszczenia. Szkoda że nie powiedzieli ani słowa o nowych metodach synchronizacji, np. o lockach, semaforach czy barierach. Nie było też nic o zmiennych atomowych ani o kolekcjach typu ArrayBlockingQueue czy ConcurrentHashMap. Szkoda, ale może w sumie by to przekraczało zakres tego kursu.
Idąc dalej mamy Enumy – krótko i treściwie. W kolejnej części jest trochę o klasach opakowujących. Troszkę rozwlekle, gdyż dla każdego typu oddzielny filmik.. Ale słucha się przyjemnie. A warto być świadomym tego po co i kiedy zachodzi automatyczne opakowywanie.
Pozytywnym zaskoczeniem było to że jeden z działów to Adnotacje. To temat który zwykle jest dość leciwie opisywany w internecie czy wykładany na uczelniach. Dowiemy się czym są owe adnotacje oraz ich strategia działa, czyli retencja. A skoro są adnotacje to również mamy refleksję, to spory skok poziomu kursu. Po adnotacjach przyszedł czas na strumienie. Zgrabnie przeszli przez niezbyt łatwy temat – szkoda że nie było ObjectOutputStream / ObjectInputStream. Na sam koniec tego rozdziału było coś co nigdy wcześniej nie widziałem – użycie klasy Runtime, czyli uruchomienie aplikacji Javy w konsoli systemowej.
Przedostatni dział to „Inne Tematy”, czyli nieco więcej o bardziej egzotycznych modyfikatorach. A ostatni jest o dokumentacji i opisie tego, w jaki sposób, importując „preferencje” można wczytać niestandardowy theme dla edytora Eclipse. Ufff, zdecydowanie dużo więcej tutaj wiedzy niż w kursie Androida. Polecam wydać te kilkanaście złotych osobom które już umieją napisać kalkulator w Javie + wiedzą czym jest programowanie obiektowe + czym są klasy + jak to wszystko się łączy.
Tak jak w poprzedniej recenzji zapraszam do zakupu tego kursu, bo warto.
A dla Was wszystkich, mam rabat -20% Kod kuponu: JAVA-mmazur
Mateusz Mazurek