Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Java Receptury: Kompendium Wiedzy Programisty!
Wstęp
Wstęp do wydania trzeciego
Wstęp do poprzednich wydań
Dla kogo jest przeznaczona ta książka?
Co można znaleźć w tej książce?
Organizacja książki
Informacje o platformach
Inne książki
Książki dotyczące ogólnych zagadnień programowania
Książki dotyczące zagadnień projektowania
Konwencje stosowane w niniejszej książce
Konwencje programistyczne
Konwencje typograficzne
Przykładowe programy
Podziękowania
Podziękowania do trzeciego wydania
Podziękowania do drugiego wydania
Podziękowania do pierwszego wydania
Oprogramowanie używane w pracach nad książką
1. Rozpoczynanie pracy: kompilacja, uruchamianie i testowanie
1.0. Wprowadzenie
1.1. Kompilacja i uruchamianie programów napisanych w Javie — JDK
Problem
Rozwiązanie
JDK
Mac OS
1.2. Edycja i kompilacja programów przy użyciu edytorów wyposażonych w kolorowanie syntaktyczne
Problem
Rozwiązanie
Analiza
1.3. Kompilacja, uruchamianie i testowanie programów przy użyciu IDE
Problem
Rozwiązanie
Analiza
Patrz także
1.4. Efektywne wykorzystanie zmiennej środowiskowej CLASSPATH
Problem
Rozwiązanie
Analiza
1.5. Pobieranie przykładów dołączonych do tej książki i korzystanie z nich
Problem
Rozwiązanie
Analiza
javasrc
darwinsys-api
Informacje ogólne
Słowo ostrzeżenia
1.6. Automatyzacja kompilacji przy użyciu programu Ant
Problem
Rozwiązanie
Analiza
Patrz także
1.7. Automatyzacja zależności, kompilacji, testowania i wdrażania przy użyciu programu Apache Maven
Problem
Rozwiązanie
Analiza
Zalety i wady programu Maven
Patrz także
1.8. Automatyzacja zależności, kompilacji, testowania i wdrażania przy użyciu programu Gradle
Problem
Rozwiązanie
Analiza
Patrz także
1.9. Komunikaty o odrzuconych metodach
Problem
Rozwiązanie
Analiza
Patrz także
1.10. Testowanie warunkowe bez użycia dyrektywy #ifdef
Problem
Rozwiązanie
Analiza
Kompilacja warunkowa?
Patrz także
1.11. Zapewnianie poprawności programu za pomocą asercji
Problem
Rozwiązanie
Analiza
1.12. Wykorzystanie programu uruchomieniowego
Problem
Rozwiązanie
Analiza
1.13. Testowanie jednostkowe — jak uniknąć konieczności stosowania programów uruchomieniowych?
Problem
Rozwiązanie
Analiza
Patrz także
1.14. Zarządzanie kodem z wykorzystaniem ciągłej integracji
Problem
Rozwiązanie
Analiza
1.15. Uzyskiwanie czytelnych komunikatów o wyjątkach
Problem
Rozwiązanie
Analiza
1.16. Poszukiwanie przykładowych kodów źródłowych: programy, szkielety i biblioteki
Problem
Rozwiązanie
Analiza
2. Interakcja ze środowiskiem
2.0. Wprowadzenie
2.1. Pobieranie wartości zmiennych środowiskowych
Problem
Rozwiązanie
Analiza
2.2. Pobieranie informacji z właściwości systemowych
Problem
Rozwiązanie
Analiza
Patrz także
2.3. Określanie używanej wersji JDK
Problem
Rozwiązanie
Analiza
2.4. Tworzenie kodu zależnego od używanego systemu operacyjnego
Problem
Rozwiązanie
Analiza
2.5. Stosowanie rozszerzających interfejsów programistycznych lub innych API
Problem
Rozwiązanie
Analiza
2.6. Analiza argumentów podanych w wierszu wywołania programu
Problem
Rozwiązanie
Analiza
Patrz także
3. Łańcuchy znaków i przetwarzanie tekstów
3.0. Wprowadzenie
3.1. Odczytywanie fragmentów łańcucha
Problem
Rozwiązanie
Analiza
3.2. Dzielenie łańcuchów na słowa
Problem
Rozwiązanie
Analiza
Patrz także
3.3. Łączenie łańcuchów znaków przy użyciu klasy StringBuilder
Problem
Rozwiązanie
Analiza
3.4. Przetwarzanie łańcucha znaków po jednej literze
Problem
Rozwiązanie
Analiza
3.5. Wyrównywanie łańcuchów znaków
Problem
Rozwiązanie
Analiza
Patrz także
3.6. Konwersja pomiędzy znakami Unicode a łańcuchami znaków
Problem
Rozwiązanie
Patrz także
3.7. Odwracanie kolejności słów lub znaków w łańcuchu
Problem
Rozwiązanie
Analiza
3.8. Rozwijanie i kompresja znaków tabulacji
Problem
Rozwiązanie
Analiza
3.9. Kontrola wielkości liter
Problem
Rozwiązanie
Patrz także
3.10. Wcinanie zawartości dokumentów tekstowych
Problem
Rozwiązanie
3.11. Wprowadzanie znaków niedrukowalnych
Problem
Rozwiązanie
Analiza
3.12. Usuwanie odstępów z końca łańcucha
Problem
Rozwiązanie
Analiza
3.13. Przetwarzanie danych rozdzielonych przecinkami
Problem
Rozwiązanie
Analiza
3.14. Program — proste narzędzie do formatowania tekstów
3.15. Program — fonetyczne porównywanie nazwisk
Patrz także
4. Dopasowywanie wzorców przy użyciu wyrażeń regularnych
4.0. Wprowadzenie
Patrz także
4.1. Składnia wyrażeń regularnych
Problem
Rozwiązanie
Analiza
4.2. Wykorzystanie wyrażeń regularnych w języku Java — sprawdzanie występowania wzorca
Problem
Rozwiązanie
Analiza
4.3. Odnajdywanie tekstu pasującego do wzorca
Problem
Rozwiązanie
4.4. Zastępowanie określonego tekstu
4.5. Wyświetlanie wszystkich wystąpień wzorca
Problem
Rozwiązanie
4.6. Wyświetlanie wierszy zawierających fragment pasujący do wzorca
Problem
Rozwiązanie
Analiza
4.7. Kontrola wielkości znaków w metodach match() i subst()
Problem
Rozwiązanie
4.8. Dopasowywanie znaków z akcentami lub znaków złożonych
Problem
Rozwiązanie
Analiza
4.9. Odnajdywanie znaków nowego wiersza
Problem
Rozwiązanie
Analiza
4.10. Program — analiza dziennika serwera Apache
4.11. Program — analizowanie danych
4.12. Program — pełna wersja programu grep
5. Liczby
5.0. Wprowadzenie
Patrz także
5.1. Sprawdzanie, czy łańcuch znaków stanowi poprawną liczbę
Problem
Rozwiązanie
Analiza
Patrz także
5.2. Zapisywanie dużych wartości w zmiennych „mniejszych” typów
Problem
Rozwiązanie
Analiza
5.3. Konwertowanie liczb na obiekty i na odwrót
Problem
Rozwiązanie
Analiza
5.4. Pobieranie ułamka z liczby całkowitej bez konwertowania go na postać zmiennoprzecinkową
Problem
Rozwiązanie
Analiza
5.5. Wymuszanie zachowania dokładności liczb zmiennoprzecinkowych
Problem
Rozwiązanie
5.6. Porównywanie liczb zmiennoprzecinkowych
Problem
Rozwiązanie
5.7. Zaokrąglanie wartości zmiennoprzecinkowych
Problem
Rozwiązanie
5.8. Formatowanie liczb
Problem
Rozwiązanie
Patrz także
5.9. Konwersje pomiędzy różnymi systemami liczbowymi — dwójkowym, ósemkowym, dziesiętnym i szesnastkowym
Problem
Rozwiązanie
Analiza
5.10. Operacje na grupie liczb całkowitych
Problem
Rozwiązanie
Analiza
5.11. Posługiwanie się cyframi rzymskimi
Problem
Rozwiązanie
Analiza
Patrz także
5.12. Formatowanie z zachowaniem odpowiedniej postaci liczby mnogiej
Problem
Rozwiązanie
Patrz także
5.13. Generowanie liczb losowych
Problem
Rozwiązanie
Patrz także
5.14. Obliczanie funkcji trygonometrycznych
Problem
Rozwiązanie
5.15. Obliczanie logarytmów
Problem
Rozwiązanie
Analiza
5.16. Mnożenie macierzy
Problem
Rozwiązanie
Analiza
Patrz także
5.17. Operacje na liczbach zespolonych
Problem
Rozwiązanie
5.18. Obsługa liczb o bardzo dużych wartościach
Problem
Rozwiązanie
Analiza
5.19. Program TempConverter
5.20. Program — generowanie liczbowych palindromów
Patrz także
6. Daty i godziny — nowy interfejs programowania aplikacji
6.0. Wprowadzenie
6.1. Określanie bieżącej daty
Problem
Rozwiązanie
Analiza
6.2. Wyświetlanie daty i czasu w zadanym formacie
Problem
Rozwiązanie
Analiza
6.3. Konwersja liczb określających datę i czas oraz ilości sekund
Problem
Rozwiązanie
Analiza
6.4. Analiza łańcuchów znaków i ich zamiana na daty
Problem
Rozwiązanie
Analiza
6.5. Obliczanie różnic pomiędzy dwiema datami
Problem
Rozwiązanie
Analiza
Patrz także
6.6. Dodawanie i odejmowanie dat
Problem
Rozwiązanie
Analiza
6.7. Stosowanie starych klas Date i Calendar
Problem
Rozwiązanie
Analiza
7. Strukturalizacja danych w języku Java
7.0. Wprowadzenie
7.1. Strukturalizacja danych przy użyciu tablic
Problem
Rozwiązanie
Analiza
7.2. Modyfikacja wielkości tablic
Problem
Rozwiązanie
Analiza
7.3. Szkielet kolekcji
Problem
Rozwiązanie
Analiza
Patrz także
7.4. Klasa podobna do tablicy, lecz bardziej dynamiczna
Problem
Rozwiązanie
Analiza
7.5. Stosowanie kolekcji ogólnych
Problem
Rozwiązanie
Analiza
Patrz także
7.6. Unikanie rzutowania dzięki zastosowaniu typów ogólnych
Problem
Rozwiązanie
Analiza
7.7. Jak przeglądać zawartość kolekcji? Wyliczenie dostępnych sposobów
Problem
Rozwiązanie
Analiza
Metoda Iterable.forEach() (dostępna w wersji Java 8)
Pętla „foreach” (Java 5)
Interfejs java.util.Iterator (Java 2)
Tradycyjna, trzyczęściowa pętla for
Pętla while
Interfejs Enumeration
7.8. Unikanie powtórzeń dzięki zastosowaniu zbioru
Problem
Rozwiązanie
Analiza
7.9. Iteratory lub wyliczenia — dostęp do danych w sposób niezależny od ich typów
Problem
Rozwiązanie
Analiza
7.10. Strukturalizacja danych z wykorzystaniem list połączonych
Problem
Rozwiązanie
Analiza
7.11. Odwzorowywanie z wykorzystaniem klas Hashtable oraz HashMap
Problem
Rozwiązanie
Analiza
7.12. Zapisywanie łańcuchów znaków w obiektach Properties i Preferences
Problem
Rozwiązanie
Analiza
Klasa Preferences
Klasa Properties
7.13. Sortowanie kolekcji
Problem
Rozwiązanie
Analiza
7.14. Unikanie konieczności sortowania danych
Problem
Rozwiązanie
Analiza
7.15. Odnajdywanie obiektu w kolekcji
Problem
Rozwiązanie
Analiza
7.16. Zamiana kolekcji na tablicę
Problem
Rozwiązanie
Analiza
7.17. Tworzenie własnego iteratora
Problem
Rozwiązanie
Analiza
Metoda Iterable.foreach() wprowadzona w wersji Java 8 ⑧
7.18. Stos
Problem
Rozwiązanie
Analiza
7.19. Struktury wielowymiarowe
Problem
Rozwiązanie
Analiza
7.20. Program — porównanie szybkości działania
8. Techniki obiektowe
8.0. Wprowadzenie
Rady lub mantry
Wykorzystanie standardowego API
Wyjątki od reguły
Dążenie do ogólności
Czytanie i tworzenie dokumentacji (Javadoc)
Klasy potomne i delegowanie
Korzystanie z wzorców projektowych
8.1. Wyświetlanie obiektów — formatowanie obiektów przy użyciu metody toString()
Problem
Rozwiązanie
Analiza
Patrz także
8.2. Przesłanianie metod equals() oraz hashCode()
Problem
Rozwiązanie
Analiza
Metoda equals()
Metoda hashCode()
Problemy metody clone() oraz jej alternatywy
8.3. Porządki w aplikacji przy użyciu metody addShutdownHook()
Problem
Rozwiązanie
Analiza
8.4. Wykorzystanie klas wewnętrznych
Problem
Rozwiązanie
Analiza
8.5. Tworzenie metod zwrotnych z wykorzystaniem interfejsów
Problem
Rozwiązanie
Analiza
8.6. Polimorfizm i metody abstrakcyjne
Problem
Rozwiązanie
Analiza
8.7. Przekazywanie wartości
Problem
Rozwiązanie
Analiza
Patrz także
8.8. Wartości wyliczeniowe bezpieczne dla typów
Problem
Rozwiązanie
Analiza
8.9. Wymuszanie użycia wzorca Singleton
Problem
Rozwiązanie
Analiza
Modyfikacje rozwiązania
Patrz także
8.10. Zgłaszanie własnych wyjątków
Problem
Rozwiązanie
Analiza
Patrz także
8.11. Wstrzykiwanie zależności
Problem
Rozwiązanie
Analiza
Patrz także
8.12. Program Plotter
9. Techniki programowania funkcyjnego: interfejsy funkcyjne, strumienie i kolekcje równoległe
9.0. Wprowadzenie ⑧
Patrz także
9.1. Stosowanie wyrażeń lambda lub domknięć zamiast klas wewnętrznych
Problem ⑧
Rozwiązanie
Analiza
9.2. Stosowanie predefiniowanych interfejsów lambda zamiast własnych
Problem ⑧
Rozwiązanie
Analiza
9.3. Upraszczanie przetwarzania z wykorzystaniem interfejsu Stream
Problem ⑧
Rozwiązanie
Analiza
9.4. Poprawianie przepustowości dzięki wykorzystaniu strumieni i kolekcji równoległych
Problem ⑧
Rozwiązanie
Analiza
9.5. Tworzenie własnych interfejsów funkcyjnych
Problem ⑧
Rozwiązanie
Analiza
Patrz także
9.6. Używanie istniejącego kodu w sposób funkcyjny dzięki wykorzystaniu odwołań do metod
Problem ⑧
Rozwiązanie
Analiza
9.7. Wstawianie istniejącego kodu metod
Problem ⑧
Rozwiązanie
Analiza
10. Wejście i wyjście
10.0. Wprowadzenie
Strumienie oraz czytelniki i pisarze
Patrz także
10.1. Odczytywanie informacji ze standardowego strumienia wejściowego
Problem
Rozwiązanie
Analiza
10.2. Odczyt z konsoli lub okna terminala; odczyt hasła bez jego wyświetlania
Problem ⑥
Rozwiązanie
Analiza
10.3. Zapis danych w standardowym strumieniu wyjściowym lub w strumieniu błędów
Problem
Rozwiązanie
Analiza
10.4. Wyświetlanie tekstów przy użyciu klasy Formatter i metody printf
Problem
Rozwiązanie
Analiza
10.5. Analiza zawartości pliku przy użyciu klasy StringTokenizer
Problem
Rozwiązanie
Analiza
10.6. Analiza danych wejściowych przy użyciu klasy Scanner
Problem
Rozwiązanie
Analiza
10.7. Analiza danych wejściowych o strukturze gramatycznej
Problem
Rozwiązanie
Analiza
10.8. Otwieranie pliku o podanej nazwie
Problem
Rozwiązanie
Analiza
10.9. Kopiowanie plików
Problem
Rozwiązanie
Analiza
10.10. Odczytywanie zawartości pliku i zapisywanie jej w obiekcie String
Problem
Rozwiązanie
Analiza
10.11. Zmiana skojarzeń standardowych strumieni
Problem
Rozwiązanie
Analiza
Patrz także
10.12. Powielanie strumienia podczas realizacji operacji zapisu
Problem
Rozwiązanie
Analiza
10.13. Odczyt i zapis danych zakodowanych w innym zbiorze znaków
Problem
Rozwiązanie
Analiza
10.14. Te kłopotliwe znaki końca wiersza
Problem
Rozwiązanie
Analiza
10.15. Kod operujący na plikach w sposób zależny od systemu operacyjnego
Problem
Rozwiązanie
Analiza
10.16. Odczytywanie „podzielonych” wierszy tekstu
Problem
Rozwiązanie
Analiza
10.17. Odczytywanie i zapisywanie danych binarnych
Problem
Rozwiązanie
Analiza
10.18. Przejście do określonego miejsca w pliku
Problem
Rozwiązanie
Analiza
10.19. Zapisywanie danych w strumieniu z wykorzystaniem języka C
Problem
Rozwiązanie
Analiza
10.20. Zapisywanie i odczytywanie obiektów
Problem
Rozwiązanie
Analiza
Patrz także
10.21. Unikanie wyjątków ClassCastException spowodowanych nieprawidłowymi wartościami SerialVersionUID
Rozwiązanie
Analiza
10.22. Odczytywanie i zapisywanie danych w archiwach JAR oraz ZIP
Problem
Rozwiązanie
Analiza
10.23. Odnajdywanie plików w sposób niezależny od systemu operacyjnego przy użyciu metod getResource() i getResourceAsStream()
Problem
Rozwiązanie
Analiza
10.24. Odczytywanie i zapisywanie skompresowanych plików
Problem
Rozwiązanie
Analiza
Patrz także
10.25. Poznawanie API do obsługi portów szeregowych i równoległych
Problem
Rozwiązanie
Analiza
Communications API w zarysie
Patrz także
10.26. Zapisywanie danych użytkownika na dysku
Problem
Rozwiązanie
Analiza
Patrz także
Podziękowania
10.27. Program — zamiana tekstu do postaci PostScript
Patrz także
11. Operacje na katalogach i systemie plików
11.0. Wprowadzenie
11.1. Pobieranie informacji o pliku
Problem
Rozwiązanie
Analiza
11.2. Tworzenie pliku
Problem
Rozwiązanie
Analiza
11.3. Zmiana nazwy pliku
Problem
Rozwiązanie
Analiza
11.4. Usuwanie plików
Problem
Rozwiązanie
Analiza
11.5. Tworzenie plików tymczasowych
Problem
Rozwiązanie
Analiza
11.6. Zmiana atrybutów pliku
Problem
Rozwiązanie
Analiza
11.7. Tworzenie listy zawartości katalogu
Problem
Rozwiązanie
Analiza
11.8. Pobieranie katalogów głównych
Problem
Rozwiązanie
Analiza
11.9. Tworzenie nowych katalogów
Problem
Rozwiązanie
Analiza
11.10. Stosowanie klasy Path zamiast File
Problem ⑦
Rozwiązanie
Analiza
Aktualizowanie starszego kodu
11.11. Stosowanie usługi WatchService do uzyskiwania informacji o zmianach pliku
Problem ⑦
Rozwiązanie
Analiza
11.12. Program Find
12. Multimedia: grafika, dźwięk i wideo
12.0. Wprowadzenie
12.1. Rysowanie przy użyciu obiektu Graphics
Problem
Rozwiązanie
Analiza
Kiedy rysować?
12.2. Testowanie komponentów graficznych
Problem
Rozwiązanie
Analiza
12.3. Wyświetlanie tekstu
Problem
Rozwiązanie
12.4. Wyświetlanie wyśrodkowanego tekstu w komponencie
Problem
Rozwiązanie
Analiza
12.5. Rysowanie cienia
Problem
Rozwiązanie
Analiza
12.6. Wyświetlanie tekstu przy użyciu biblioteki grafiki dwuwymiarowej
Problem
Rozwiązanie
Analiza
Patrz także
12.7. Wyświetlanie tekstu przy użyciu czcionki aplikacji
Problem
Rozwiązanie
Analiza
12.8. Wyświetlanie obrazu
Problem
Rozwiązanie
Analiza
12.9. Odczyt i zapis obrazów przy użyciu pakietu javax.imageio
Problem
Rozwiązanie
Analiza
Patrz także
12.10. Odtwarzanie pliku dźwiękowego
Problem
Rozwiązanie
Analiza
Patrz także
12.11. Prezentacja ruchomego obrazu
Problem
Rozwiązanie
Analiza
JMF
VLCJ
JavaFX
12.12. Drukowanie w Javie
Problem
Rozwiązanie
Analiza
Patrz także
12.13. Program PlotterAWT
12.14. Program Grapher
13. Klienty sieciowe
13.0. Wprowadzenie
13.1. Nawiązywanie połączenia z serwerem
Problem
Rozwiązanie
Analiza
Patrz także
13.2. Odnajdywanie i zwracanie informacji o adresach sieciowych
Problem
Rozwiązanie
Analiza
Patrz także
13.3. Obsługa błędów sieciowych
Problem
Rozwiązanie
13.4. Odczyt i zapis danych tekstowych
Problem
Rozwiązanie
Analiza
13.5. Odczyt i zapis danych binarnych
Problem
Rozwiązanie
Analiza
13.6. Odczyt i zapis danych serializowanych
Problem
Rozwiązanie
Analiza
13.7. Datagramy UDP
Problem
Rozwiązanie
Analiza
13.8. Program — klient TFTP wykorzystujący protokół UDP
13.9. URI, URL czy może URN?
Problem
Rozwiązanie
Dyskusja
13.10. Klient usługi internetowej REST
Problem
Rozwiązanie
Analiza
13.11. Klient usługi internetowej SOAP
Problem
Rozwiązanie
Dyskusja
Tworzenie prostej usługi
Generowanie artefaktów klienta i pisanie jego kodu
Patrz także
13.12. Program — klient usługi Telnet
13.13. Program — klient pogawędek internetowych
Patrz także
13.14. Program — sprawdzanie odnośników HTTP
14. Graficzny interfejs użytkownika
14.0. Wprowadzenie
Patrz także
14.1. Wyświetlanie komponentów graficznego interfejsu użytkownika
Problem
Rozwiązanie
Analiza
14.2. Uruchamianie graficznego interfejsu użytkownika w wątku przekazywania zdarzeń
Problem
Rozwiązanie
Analiza
14.3. Projektowanie układu okna
Problem
Rozwiązanie
Analiza
Patrz także
14.4. Karty — nowe spojrzenie na świat
Problem
Rozwiązanie
Analiza
Patrz także
14.5. Obsługa czynności — tworzenie działających przycisków
Problem
Rozwiązanie
Analiza
14.6. Obsługa czynności z wykorzystaniem anonimowych klas wewnętrznych
Problem
Rozwiązanie
Analiza
Patrz także
14.7. Obsługa czynności z wykorzystaniem wyrażeń lambda
Problem ⑧
Rozwiązanie
Analiza
14.8. Kończenie programu przy użyciu przycisku Zamknij
Problem
Rozwiązanie
Analiza
Patrz także
14.9. Okna dialogowe — tego nie można zrobić później
Problem
Rozwiązanie
Analiza
Patrz także
14.10. Przechwytywanie i formatowanie wyjątków graficznego interfejsu użytkownika
Problem
Rozwiązanie
Analiza
14.11. Wyświetlanie wyników wykonania programu w oknie
Problem
Rozwiązanie
Analiza
14.12. Wybieranie wartości przy użyciu komponentu JSpinner
Problem
Rozwiązanie
Analiza
Patrz także
14.13. Wybieranie plików przy użyciu klasy JFileChooser
Problem
Rozwiązanie
Analiza
14.14. Wybieranie koloru
Problem
Rozwiązanie
Analiza
Patrz także
14.15. Formatowanie komponentów przy użyciu kodu HTML
Problem
Rozwiązanie
Analiza
14.16. Wyświetlanie okna głównego pośrodku ekranu
Problem
Rozwiązanie
Analiza
14.17. Zmiana sposobów prezentacji programów pisanych z wykorzystaniem pakietu Swing
Problem
Rozwiązanie
Analiza
Patrz także
14.18. Korzystanie z rozszerzonych możliwości pakietu Swing w systemie Mac OS X
Problem
Rozwiązanie
Analiza
Patrz także
14.19. Tworzenie aplikacji z graficznym interfejsem użytkownika przy użyciu pakietu JavaFX
Problem
Rozwiązanie
Analiza
14.20. Program — własne narzędzie do wybierania czcionek
Problem
Rozwiązanie
Analiza
14.21. Program — własny menedżer układu
Problem
Rozwiązanie
Analiza
Patrz także
15. Tworzenie programów wielojęzycznych oraz lokalizacja
15.0. Wprowadzenie
15.1. Tworzenie przycisku w różnych wersjach językowych
Problem
Rozwiązanie
Co się dzieje w czasie wykonywania programu?
Wybór ustawień lokalnych
15.2. Tworzenie listy dostępnych ustawień lokalnych
Problem
Rozwiązanie
Analiza
15.3. Tworzenie menu z wykorzystaniem zasobów wielojęzycznych
Problem
Rozwiązanie
Analiza
15.4. Tworzenie metod pomocniczych przydatnych podczas pisania programów wielojęzycznych
Problem
Rozwiązanie
Analiza
15.5. Tworzenie okien dialogowych z wykorzystaniem zasobów wielojęzycznych
Problem
Rozwiązanie
Analiza
15.6. Tworzenie wiązki zasobów
Problem
Rozwiązanie
Analiza
15.7. Usuwanie łańcuchów znaków z kodu
Problem
Rozwiązanie
Analiza
15.8. Wykorzystanie konkretnych ustawień lokalnych
Problem
Rozwiązanie
Analiza
15.9. Określanie domyślnych ustawień lokalnych
Problem
Rozwiązanie
Analiza
15.10. Formatowanie komunikatów przy użyciu klasy MessageFormat
Problem
Rozwiązanie
Analiza
15.11. Program MenuIntl
15.12. Program BusCard
Patrz także
Argumenty przeciwko tworzeniu programów wielojęzycznych
Dokumentacja
Ostatnia uwaga
16. Programy Javy działające na serwerze — gniazda
16.0. Wprowadzenie
16.1. Tworzenie serwera
Problem
Rozwiązanie
Analiza
16.2. Zwracanie odpowiedzi (łańcucha znaków bądź danych binarnych)
Problem
Rozwiązanie
Analiza
16.3. Zwracanie informacji o obiektach
Problem
Rozwiązanie
Analiza
16.4. Obsługa wielu klientów
Problem
Rozwiązanie
Analiza
16.5. Serwer obsługujący protokół HTTP
Problem
Rozwiązanie
Analiza
16.6. Zabezpieczanie serwera WWW przy użyciu SSL i JSSE
Problem
Rozwiązanie
Analiza
Patrz także
16.7. Rejestracja operacji sieciowych
Problem
Rozwiązanie
Analiza
16.8. Rejestracja przez sieć przy użyciu SLF4J
Problem
Rozwiązanie
Analiza
Patrz także
16.9. Rejestracja przez sieć przy użyciu log4j
Problem
Rozwiązanie
Analiza
16.10. Rejestracja przez sieć przy użyciu pakietu java.util.logging
Problem
Rozwiązanie
Analiza
16.11. Znajdowanie interfejsów sieciowych
Problem
Rozwiązanie
Analiza
16.12. Program — serwer pogawędek w Javie
Patrz także
17. Java i poczta elektroniczna
17.0. Wprowadzenie
17.1. Wysyłanie poczty elektronicznej — wersja działająca w przeglądarkach
Problem
Rozwiązanie
Analiza
17.2. Wysyłanie poczty elektronicznej — właściwe rozwiązanie
Problem
Rozwiązanie
Analiza
17.3. Dodawanie możliwości wysyłania poczty do programu działającego na serwerze
Problem
Rozwiązanie
Analiza
17.4. Wysyłanie wiadomości MIME
Problem
Rozwiązanie
Analiza
17.5. Tworzenie ustawień poczty elektronicznej
Problem
Rozwiązanie
Analiza
17.6. Odczytywanie poczty elektronicznej
Problem
Rozwiązanie
Analiza
17.7. Program MailReaderBean
17.8. Program MailClient
Patrz także
18. Dostęp do baz danych
18.0. Wprowadzenie
18.1. Łatwy dostęp do bazy danych przy użyciu JPA oraz Hibernate
Problem
Rozwiązanie
Analiza
Patrz także
18.2. Konfiguracja i nawiązywanie połączeń JDBC
Problem
Rozwiązanie
Analiza
18.3. Nawiązywanie połączenia z bazą danych JDBC
Problem
Rozwiązanie
Analiza
Patrz także
18.4. Przesyłanie zapytań JDBC i pobieranie wyników
Problem
Rozwiązanie
Analiza
18.5. Wykorzystanie przygotowanych poleceń JDBC
Problem
Rozwiązanie
Analiza
18.6. Wykorzystanie procedur osadzonych w JDBC
Problem
Rozwiązanie
Analiza
18.7. Modyfikacja danych przy użyciu obiektu ResultSet
Problem
Rozwiązanie
Analiza
18.8. Zapisywanie wyników w obiektach RowSet
Problem
Rozwiązanie
Analiza
Patrz także
18.9. Modyfikacja danych przy użyciu poleceń SQL
Problem
Rozwiązanie
Analiza
18.10. Odnajdywanie metadanych JDBC
Problem
Rozwiązanie
Analiza
Klasa ResultSetMetaData
Metadane dotyczące bazy danych
18.11. Program SQLRunner
Patrz także
19. Przetwarzanie danych w formacie JSON
19.0. Wprowadzenie
19.1. Bezpośrednie generowanie danych w formacie JSON
Problem
Rozwiązanie
Analiza
19.2. Analiza i zapisywanie danych JSON przy użyciu pakietu Jackson
Problem
Rozwiązanie
Analiza
19.3. Analiza i zapis danych w formacie JSON przy użyciu pakietu org.json
Problem
Rozwiązanie
Analiza
Patrz także
Podsumowanie
20. XML
20.0. Wprowadzenie
20.1. Konwersja obiektów na dane XML przy użyciu JAXB
Problem
Rozwiązanie
Analiza
20.2. Konwersja obiektów na dane XML przy użyciu serializatorów
Problem
Rozwiązanie
Analiza
20.3. Przekształcanie danych XML przy użyciu XSLT
Problem
Rozwiązanie
Analiza
Patrz także
20.4. Analiza składniowa XML przy użyciu API SAX
Problem
Rozwiązanie
Analiza
20.5. Analiza dokumentów XML przy użyciu modelu obiektów dokumentu (DOM)
Problem
Rozwiązanie
Analiza
20.6. Odnajdywanie elementów XML przy użyciu XPath
Problem
Rozwiązanie
Analiza
20.7. Weryfikacja poprawności struktury z wykorzystaniem DTD
Problem
Rozwiązanie
Analiza
Schematy XML
Definicje typu dokumentu (DTD)
Patrz także
20.8. Generowanie własnego kodu XML z wykorzystaniem DOM i obiektów przekształceń XML
Problem
Rozwiązanie
Analiza
20.9. Program xml2mif
Patrz także
21. Pakiety i ich tworzenie
21.0. Wprowadzenie
21.1. Tworzenie pakietu
Problem
Rozwiązanie
Analiza
21.2. Tworzenie dokumentacji klas przy użyciu programu Javadoc
Problem
Rozwiązanie
Analiza
Patrz także
Javadoc kontra JavaHelp
21.3. Więcej niż Javadoc — adnotacje i metadane
Problem
Rozwiązanie
Analiza
21.4. Stosowanie programu archiwizującego jar
Problem
Rozwiązanie
Analiza
21.5. Uruchamianie programu zapisanego w pliku JAR
Problem
Rozwiązanie
Analiza
Szczegóły dotyczące systemu Mac OS X
Szczegóły dotyczące apletów
21.6. Tworzenie klasy w taki sposób, by była komponentem JavaBeans
Problem
Rozwiązanie
Analiza
21.7. Umieszczanie komponentów w plikach JAR
Problem
Rozwiązanie
Analiza
21.8. Umieszczanie serwletów w plikach JAR
Problem
Rozwiązanie
Analiza
21.9. „Zapisz raz, instaluj wszędzie”
Problem
Rozwiązanie
Analiza
21.10. „Napisz raz, instaluj na Mac OS X”
Problem
Rozwiązanie
Analiza
Patrz także
21.11. Java Web Start
Problem
Rozwiązanie
Analiza
Patrz także
21.12. Podpisywanie plików JAR
Problem
Rozwiązanie
Analiza
Patrz także
22. Stosowanie wątków w Javie
22.0. Wprowadzenie
22.1. Uruchamianie kodu w innym wątku
Problem
Rozwiązanie
Analiza
Metody cyklu życiowego wątku
22.2. Animacja — wyświetlanie poruszających się obrazów
Problem
Rozwiązanie
Analiza
22.3. Zatrzymywanie działania wątku
Problem
Rozwiązanie
Analiza
22.4. Spotkania i ograniczenia czasowe
Problem
Rozwiązanie
Analiza
22.5. Synchronizacja wątków przy użyciu słowa kluczowego synchronized
Problem
Rozwiązanie
Analiza
22.6. Upraszczanie synchronizacji przy użyciu blokad
Problem
Rozwiązanie
Analiza
Patrz także
22.7. Komunikacja między wątkami — metody wait() oraz notifyAll()
Problem
Rozwiązanie
Analiza
22.8. Upraszczanie programu producent-konsument przy użyciu interfejsu Queue
Problem
Rozwiązanie
Analiza
22.9. Optymalizacja działania równoległego przy użyciu Fork/Join
Problem ⑦
Rozwiązanie
Analiza
22.10. Zapis danych w tle w programach edycyjnych
Problem
Rozwiązanie
Analiza
22.11. Wielowątkowy serwer sieciowy
Problem
Rozwiązanie
Analiza
22.12. Upraszczanie serwerów z wykorzystaniem klas pakietu java.util.concurrent
Problem
Rozwiązanie
Analiza
Patrz także
23. Introspekcja lub „klasa o nazwie Class”
23.0. Wprowadzenie
23.1. Pobieranie deskryptora klasy
Problem
Rozwiązanie
23.2. Określanie oraz stosowanie metod i pól
Problem
Rozwiązanie
Analiza
23.3. Uzyskiwanie dostępu do prywatnych pól i metod za pomocą introspekcji
Problem
Rozwiązanie
Analiza
23.4. Dynamiczne ładowanie i instalowanie klas
Problem
Rozwiązanie
Analiza
23.5. Tworzenie nowej klasy od podstaw przy użyciu obiektu ClassLoader
Problem
Rozwiązanie
Analiza
Co dalej?
23.6. Określanie efektywności działania
Problem
Rozwiązanie
Analiza
Programy profilujące
Pomiar czasu wykonania metody
Wyniki testów
Inny aspekt wydajności — mechanizm odzyskiwania pamięci
Program pomiarowy
Patrz także
23.7. Wyświetlanie informacji o klasie
Problem
Rozwiązanie
Analiza
23.8. Wyświetlanie klas należących do pakietu
Problem
Rozwiązanie
Analiza
23.9. Stosowanie i definiowanie adnotacji
Problem
Rozwiązanie
Analiza
23.10. Zastosowanie adnotacji do odnajdywania klas pełniących rolę wtyczek
Problem
Rozwiązanie
Dyskusja
Patrz także
23.11. Program CrossRef
23.12. Program AppletViewer
Patrz także
24. Wykorzystywanie Javy wraz z innymi językami programowania
24.0. Wprowadzenie
24.1. Uruchamianie zewnętrznego programu
Problem
Rozwiązanie
Analiza
24.2. Wykonywanie programu i przechwytywanie jego wyników
Problem
Rozwiązanie
Analiza
Patrz także
24.3. Wywoływanie kodu napisanego w innych językach przy użyciu javax.script
Problem
Rozwiązanie
Analiza
Patrz także
24.4. Tworzenie własnego mechanizmu skryptowego
Problem
Rozwiązanie
Analiza
24.5. Łączenie języków Java i Perl
Problem
Rozwiązanie
Analiza
Patrz także
24.6. Dołączanie kodu rodzimego
Problem
Rozwiązanie
Analiza
Patrz także
24.7. Wywoływanie kodu Javy z kodu rodzimego
Problem
Rozwiązanie
Analiza
A. Posłowie
B. Java kiedyś i obecnie
Wprowadzenie: Java nieustannie się zmienia
Zapowiedź Javy — HotJava
Przybywa Java 1.0
Nowości wprowadzone w wersji Java 1.1.
Nowości wprowadzone w wersji Java 2 (Java SDK 1.2)
Nowości wprowadzone w wersji Java 1.3
Nowości wprowadzone w wersji Java 1.4
Zmiany języka
Zmiany w API
Nowości wprowadzone w wersji Java 5
Zmiany w języku Java
Pętla „foreach” wprowadzona w języku Java 5
Typy wyliczeniowe
Adnotacje Java 5
Typy ogólne
Listy argumentów o zmiennej postaci
Zmiany wprowadzone w API
Wątki — narzędzia związane ze współbieżnością
Wróciła metoda printf
Uwaga bibliograficzna
Nowości wprowadzone w wersji Java 6
Zmiany w Java 6 API
Nowości wprowadzone w wersji Java 7
Zmiany wprowadzone w języku Java oraz w JVM
Klauzule catch przechwytujące wiele typów wyjątków
Instrukcja try zarządzająca zasobami
Wnioskowanie typów w typach ogólnych (operator <>)
Łańcuchy znaków w instrukcji switch
Zmiany w Java 7 API
Nowości wprowadzone w wersji Java 8
Zmiany wprowadzone w języku Java
Zmiany wprowadzone w API
Spójrzmy poza błękitny horyzont...
C. O autorze
Indeks
Kolofon
Copyright
← Prev
Back
Next →
← Prev
Back
Next →