Większość wpisów znajdujących się na moim blogu poświęcona jest przede wszystkim językowi Java, którego uczyłem się i w zasadzie nadal uczę korzystając z innych blogów, książek, czy po prostu oficjalnej dokumentacji. Mam świadomość, jak wiele przydatnych informacji już znajduje się na temat języka Java w internecie, ale myślę, że znajdą się osoby, którym niektóre z napisanych przeze mnie artykułów, będą mogły się przydać. Dostęp do niektórych ze znajdujących się na blogu wpisów wymaga aktualnie podania hasła. Tyczy się to wpisów, które osobiście uważam za niedopracowane i póki co nie warte upublicznienia. Wpisy raczej nie mają charakteru kompletnego kursu. Przedstawiają jedynie wybrane zagadnienia związane z językiem Java.
Wstęp
Na początku warto wiedzieć, że Java nie jest językiem w stu procentach obiektowym, ze względu na wykorzystywane typy proste (prymitywne). Wpisy poruszają m.in. ten temat, ale można dzięki nim dowiedzieć się również, jak w Javie wygląda przepływ danych i że do programowania w tym języku nie ma potrzeby korzystania z jakiegokolwiek IDE i że w zasadzie wystarczy jedynie konsola i prosty edytor tekstu, choćby vi (albo Vim), czy najzwyklejszy notatnik.
- Java z linii poleceń (javac, java, jar)
- Java – podstawowe instrukcje i pętle
- Typy proste i ich klasowe odpowiedniki
- Powłoka JShell (REPL)
- [HASŁO] Obiekty i typy proste – tworzenie i porównywanie (implementacja metod equals i hashcode)
Klasy, interfejsy, słówka kluczowe…
Klasy i interfejsy są w zasadzie jednymi z najważniejszych elementów języków zorientowanych obiektowo i tak jest również w przypadku języka Java. Warto wiedzieć, jak tworzyć konstruktory klas, jak wywoływać konstruktory klas bazowych, czy wykorzystywać tzw. constructor chaining, by nie powielać kodu. Poniższe wpisy tłumaczą również jak modyfikatory dostępu takie jak public, private i protected wpływają na zmienne, metody oraz klasy i ich konstruktory.
- Klasa abstrakcyjna, a interfejs – jakie są różnice?
- [HASŁO] Klasy wewnętrzne i zewnętrzne
- Klasy adaptacyjne
- Klasy ogólne – generyczne, parametryzowane + metody
- Dziedziczenie i polimorfizm
- Typ wyliczeniowy enum
- Wyrażenia lambda i interfejsy funkcyjne
- Public, private, protected, czyli modyfikatory dostępu
- Słowo kluczowe final – zmienne klasowe, metody, klasy
- Konstruktory klas
- Słowo kluczowe static
- Metody o zmiennej liczbie argumentów
- Strumienie
- Method chaining – „łączenie metod”
- Niestatyczny i statyczny blok kodu
Kolekcje
Kolekcje w Javie pozwalają sprawnie operować na danych – sortować je, modyfikować, mapować…. Warto wiedzieć, czym poszczególne implementacje związanych z kolekcjami interfejsów różnią się od siebie. Kolekcje w języku Java to temat rzeka, więc mimo wszystko zachęcam do zapoznania się z dokumentacją. Ja poruszyłem tylko najważniejsze kwestie.
- Kolekcje – interfejsy List, Set, Map, Queue, Deque, Stack
- Tablice – konwersja pomiędzy tablicami i a kolekcjami
Komponenty Swing, czyli GUI w Javie
GUI w Javie zbudować można wykorzystując klasy należące do biblioteki javax.swing i choć istnieją frameworki, które znacznie usprawniają tworzenie interfejsu użytkownika, to warto wiedzieć, jak można zrobić to samodzielnie (i przy okazji przekonać się, ile z tym jest zabawy ?). Tutaj również mimo wszystko zachęcam do zajrzenia do dokumentacji wspomnianej biblioteki i do innych źródeł, które wyczerpują ten temat.
- Przykłady związane z komponentami GUI
- Tworzenie GUI – komponenty, układy + interfejs ActionListener
- [HASŁO] ActionListener
- Interfejs FocusListener – przykładowa implementacja
- Interfejs KeyListener – przykładowa implementacja
- Interfejs MouseListener – przykładowa implementacja
- Interfejs MouseMotionListener – przykładowa implementacja
- [HASŁO] Interfejs Action i klasa AbstractAction – akcje
Operacje na plikach (snippety)
Tutaj znajdują się wpisy zawierające jedynie fragmenty kodów. Dotyczą one przede wszystkim pobierania danych od użytkownika oraz wczytywania i zapisywania danych do plików.
- Klasa Scanner – pobieranie danych od użytkownika i wczytywanie plików
- FileWriter i BufferedWriter – zapisywanie plików
- FileReader i BufferedReader – wczytywanie plików
- FileInputStream – wczytywanie pojedynczych bajtów
- FileOutputStream – zapisywanie pojedynczych bajtów
Wyjątki
W językach programowania spotkać się można z wyjątkami, które pomóc mogą w uniknięciu problematycznych sytuacji podczas działania programu. W Javie wyjątki dzielą się na takie, które trzeba obsłużyć (checked exceptions) i te, w przypadku których nie ma takiej potrzeby (unchecked exceptions).
Wielowątkowość
Lorem ipsum dolor sit amet…
Oprogramowanie i technologie związane z językiem Java
Z Javą związane są przeróżne frameworki oraz narzędzia, które ułatwiają tworzenie aplikacji. Są to choćby takie programy jak Apache Maven, które ułatwiają budowanie projektów i zarządzanie zależnościami, ale i takie jak JPA (Java Persistence API) i inne standardy mapowania obiektowo-relacyjnego (ORM), które upraszczają tworzenie obiektów np. w oparciu o dane pobrane z tabel jakiejś bazy danych. Nie można zapominać również o frameworku Spring ułatwiającym tworzenie aplikacji webowych w Javie EE.
- Podstawy Apache Maven w oparciu o prostą aplikację
- JPA i Hibernate – tworzenie projektu i konfiguracja pliku persistence.xml
- JPA i Hibernate – tworzenie projektu (Maven)
- Dodawanie rekordów do bazy za pośrednictwem Hibernate
- greenDAO – tworzenie i konfiguracja projektu – Android ORM
Różne
Tutaj są wpisy na temat różnych klas podstawowych dostarczanych przez JRE.
- Wyrażenia regularne – klasa Pattern i Matcher
- Nieco więcej o obiektach typu String (konkatenacja, StringBuilder, sterta, słowo kluczowe new)
- Formatter – formatowanie ciągu znaków
- [HASŁO] Adnotacje i dyrektywy
- [HASŁO] Serializacja i deserializacja obiektów
- Zmiana wyglądu (motywu) elementów GUI – setLookAndFeel – snippet
Java Enterprise Edition
Java Enterprise Edition rozszerza zawartość Javy Standard Edition i pozwala tym samym na tworzenie profesjonalnych aplikacji webowych.
Android (przykłady)
Do tworzenia aplikacji na smartfony i inne urządzenia oparte o Androida wykorzystać można różne języki programowania w tym również Javę.
- Przechodzenie z jednej aktywności do drugiej
- Wyświetlanie danych za pomocą ListView
- Przekazywanie danych pomiędzy aktywnościami
- SplashActivity – aktywność powitalna
- Sprawdzanie, czy aplikacja była uruchamiana
- Prosty przykład związany z tworzeniem powiadomień
- [HASŁO] Tworzenie adaptera rozszerzającego klasę BaseAdapter
- Uprawnienia aplikacji – jak pytać o dostęp do uprawnień?
- [HASŁO] SQLite – system zarządzania bazą danych w Androidzie
- [HASŁO] Wykorzystywanie lokalnych plików JSON
- Chowanie klawiatury ekranowej – snippet
- Chowanie paska tytułowego aplikacji – snippet
- [HASŁO] Chowanie paska statusu – Statusbar
Zmiana czcionki w DrawerLayoutProsty przykład z wykorzystaniem fragmentów„Naciśnij jeszcze raz, by wyjść z aplikacji”

