Facebook - konwersja

  • nowość

Java. Techniki zaawansowane - ebook

Wydawnictwo:
Tłumacz:
Format:
EPUB
Data wydania:
19 listopada 2025
169,00
16900 pkt
punktów Virtualo

Java. Techniki zaawansowane - ebook

Od ponad trzydziestu lat Java jest wybierana przez programistów, którym zależy na tworzeniu bezpiecznych aplikacji wyjątkowej jakości. Jednak pisanie programów oznacza konieczność posiadania znacznie bardziej zaawansowanej wiedzy niż ta, którą ma przeciętny użytkownik ... trzeba znać język i jego wszystkie, nawet mniej oczywiste funkcjonalności, również te niedawno zaimplementowane.

Książka zawiera szczegółowe omówienie Javy 21, programowania korporacyjnego, sieciowego i bazodanowego, a także zagadnień związanych z internacjonalizacją i metodami natywnymi. Dużo miejsca poświęcono obsłudze strumieni, pracy z językiem XML, API dat i czasu, API skryptowemu czy kompilacji. Opisano też sposoby korzystania z biblioteki Swing, tworzenia graficznych interfejsów użytkownika po stronie klienta i generowania obrazów po stronie serwera. Przykłady kodu zostały starannie przetestowane, prezentują nowoczesny styl programowania w Javie i opierają się na najlepszych praktykach.

W książce ponadto:

  • najlepsze praktyki pisania niezawodnego kodu w Javie
  • rozszerzone API wejścia-wyjścia, serializacja obiektów i wyrażenia regularne
  • usługi sieciowe, wbudowane serwery Javy i implementacja własnych serwerów
  • API skryptowe i API kompilatora
  • model bezpieczeństwa Javy i funkcje biblioteki bezpieczeństwa
  • nowe API do korzystania z funkcji natywnych i pamięci poza stertą

To jest najlepsze kompendium wiedzy o języku Java i o całym ekosystemie Javy!

Andrew Binstock Java Magazine

Spis treści

Wstęp

Podziękowania

1. Strumienie

  • 1.1. Od iteracji do operacji na strumieniach
  • 1.2. Tworzenie strumieni
  • 1.3. Metody filter, map oraz flatMap
  • 1.4. Pobieranie podstrumieni i łączenie strumieni
  • 1.5. Inne przekształcenia strumieni
  • 1.6. Proste operacje redukcji
  • 1.7. Typ Optional
    • 1.7.1. Pobieranie wartości Optional
    • 1.7.2. Korzystanie z wartości Optional
    • 1.7.3. Potoki wartości opcjonalnych
    • 1.7.4. Jak nie należy używać wartości opcjonalnych
    • 1.7.5. Tworzenie obiektów typu Optional
    • 1.7.6. Łączenie funkcji zwracających wartości opcjonalne przy użyciu flatMap
    • 1.7.7. Przekształcanie wartości opcjonalnej w strumień
  • 1.8. Gromadzenie wyników
  • 1.9. Gromadzenie wyników w mapach
  • 1.10. Grupowanie i podział
  • 1.11. Kolektory przetwarzające
  • 1.12. Operacje redukcji
  • 1.13. Strumienie danych typów prostych
  • 1.14. Strumienie równoległe

2. Wejście i wyjście

  • 2.1. Strumienie wejścia-wyjścia
    • 2.1.1. Odczyt i zapis bajtów
    • 2.1.2. Zoo pełne strumieni
    • 2.1.3. Łączenie filtrów strumieni wejścia-wyjścia
    • 2.1.4. Tekstowe operacje wejścia-wyjścia
    • 2.1.5. Wczytywanie tekstu
    • 2.1.6. Zapisywanie tekstu
    • 2.1.7. Zapis obiektów w formacie tekstowym
    • 2.1.8. Zbiory znaków
    • 2.1.9. Wczytywanie znaków
  • 2.2. Odczyt i zapis danych binarnych
    • 2.2.1. Interfejsy DataInput i DataOutput
    • 2.2.2. Strumienie plików o swobodnym dostępie
    • 2.2.3. Archiwa ZIP
  • 2.3. Strumienie obiektów i serializacja
    • 2.3.1. Zapisywanie i wczytywanie obiektów serializowalnych
    • 2.3.2. Format pliku serializacji obiektów
    • 2.3.3. Pola pomijane podczas serializacji
    • 2.3.4. Metody readObject i writeObject
    • 2.3.5. Metody readExternal i writeExternal
    • 2.3.6. Metody readResolve i writeReplace
    • 2.3.7. Wersje
    • 2.3.8. Serializacja w roli klonowania
    • 2.3.9. Deserializacja a bezpieczeństwo
  • 2.4. Praca z plikami
    • 2.4.1. Ścieżki dostępu
    • 2.4.2. Odczyt i zapis plików
    • 2.4.3. Tworzenie plików i katalogów
    • 2.4.4. Kopiowanie, przenoszenie i usuwanie plików
    • 2.4.5. Informacje o plikach
    • 2.4.6. Przeglądanie zawartości katalogu
    • 2.4.7. Stosowanie strumieni katalogów
    • 2.4.8. Systemy plików ZIP
  • 2.5. Mapowanie plików w pamięci
    • 2.5.1. Wydajność plików mapowanych w pamięci
    • 2.5.2. Struktura bufora danych
  • 2.6. Blokowanie plików
  • 2.7. Wyrażenia regularne
    • 2.7.1. Składnia wyrażeń regularnych
    • 2.7.2. Testowanie dopasowania
    • 2.7.3. Znajdowanie wszystkich dopasowań w łańcuchu
    • 2.7.4. Grupy
    • 2.7.5. Podział w miejscach wystąpienia separatora
    • 2.7.6. Zastępowanie dopasowań
    • 2.7.7. Flagi

3. Język XML

  • 3.1. Wprowadzenie do języka XML
  • 3.2. Struktura dokumentu XML
  • 3.3. Parsowanie dokumentów XML
  • 3.4. Kontrola poprawności dokumentów XML
    • 3.4.1. Definicje typów dokumentów
    • 3.4.2. XML Schema
    • 3.4.3. Praktyczny przykład
  • 3.5. Wyszukiwanie informacji za pomocą XPath
  • 3.6. Przestrzenie nazw
  • 3.7. Parsery strumieniowe
    • 3.7.1. Wykorzystanie parsera SAX
    • 3.7.2. Wykorzystanie parsera StAX
  • 3.8. Tworzenie dokumentów XML
    • 3.8.1. Dokumenty bez przestrzeni nazw
    • 3.8.2. Dokumenty z przestrzenią nazw
    • 3.8.3. Zapisywanie dokumentu
    • 3.8.4. Zapis dokumentu XML za pomocą parsera StAX
  • 3.9. Przekształcenia XSL

4. Programowanie aplikacji sieciowych

  • 4.1. Połączenia z serwerem
    • 4.1.1. Stosowanie programu telnet
    • 4.1.2. Nawiązywanie połączenia z serwerem z wykorzystaniem Javy
    • 4.1.3. Limity czasu gniazd
    • 4.1.4. Adresy internetowe
  • 4.2. Implementacja serwerów
    • 4.2.1. Gniazda serwera
    • 4.2.2. Obsługa wielu klientów
    • 4.2.3. Połączenia częściowo zamknięte
    • 4.2.4. Przerywanie działania gniazd sieciowych
    • 4.2.5. Stosowanie bezpiecznych gniazd
  • 4.3. Połączenia wykorzystujące URL
    • 4.3.1. URL i URI
    • 4.3.2. Zastosowanie klasy URLConnection do pobierania informacji
    • 4.3.3. Wysyłanie danych do formularzy
  • 4.4. Klient HTTP
    • 4.4.1. Klasa HttpClient
    • 4.4.2. Klasa HttpRequest i publikowanie zawartości
    • 4.4.3. Interfejs HttpResponse i obsługa zawartości
    • 4.4.4. Przetwarzanie asynchroniczne
  • 4.5. Prosty serwer HTTP
    • 4.5.1. Narzędzie uruchamiane z wiersza poleceń
    • 4.5.2. API serwera HTTP
    • 4.5.3. Obiekty obsługi
    • 4.5.4. Filtry
  • 4.6. Wysyłanie poczty elektronicznej

5. Programowanie baz danych: JDBC

  • 5.1. Architektura JDBC
    • 5.1.1. Typy sterowników JDBC
    • 5.1.2. Typowe zastosowania JDBC
  • 5.2. Język SQL
  • 5.3. Instalacja JDBC
    • 5.3.1. Adresy URL baz danych
    • 5.3.2. Pliki JAR zawierające sterownik
    • 5.3.3. Uruchamianie baz danych
    • 5.3.4. Nawiązywanie połączenia z bazą danych
  • 5.4. Stosowanie poleceń SQL
    • 5.4.1. Wykonywanie poleceń SQL
    • 5.4.2. Zarządzanie połączeniami, poleceniami i zbiorami wyników
    • 5.4.3. Analiza wyjątków SQL
    • 5.4.4. Wypełnianie bazy danych
  • 5.5. Wykonywanie zapytań
    • 5.5.1. Polecenia przygotowane
    • 5.5.2. Odczyt i zapis dużych obiektów
    • 5.5.3. Sekwencje sterujące
    • 5.5.4. Zapytania o wielu zbiorach wyników
    • 5.5.5. Pobieranie wartości kluczy wygenerowanych automatycznie
  • 5.6. Przewijalne i aktualizowalne zbiory wyników zapytań
    • 5.6.1. Przewijalne zbiory wyników
    • 5.6.2. Aktualizowalne zbiory rekordów
  • 5.7. Zbiory rekordów
    • 5.7.1. Tworzenie zbiorów rekordów
    • 5.7.2. Buforowane zbiory rekordów
  • 5.8. Metadane
  • 5.9. Transakcje
    • 5.9.1. Programowanie transakcji w JDBC
    • 5.9.2. Punkty kontrolne
    • 5.9.3. Aktualizacje wsadowe
    • 5.9.4. Zaawansowane typy języka SQL
  • 5.10. Zaawansowane zarządzanie połączeniami

6. API dat i czasu

  • 6.1. Oś czasu
  • 6.2. Daty lokalne
  • 6.3. Modyfikatory dat
  • 6.4. Czas lokalny
  • 6.5. Czas strefowy
  • 6.6. Formatowanie i parsowanie
  • 6.7. Współdziałanie ze starym kodem

7. Internacjonalizacja

  • 7.1. Lokalizatory
    • 7.1.1. Dlaczego stosuje się lokalizatory?
    • 7.1.2. Określanie lokalizatorów
    • 7.1.3. Lokalizator domyślny
    • 7.1.4. Nazwa lokalizatora
  • 7.2. Formaty liczb
    • 7.2.1. Formatowanie wartości liczbowych
    • 7.2.2. Klasa DecimalFormat
    • 7.2.3. Waluty
  • 7.3. Data i czas
  • 7.4. Porządek alfabetyczny i normalizacja
  • 7.5. Formatowanie komunikatów
    • 7.5.1. Formatowanie liczb i dat
    • 7.5.2. Formatowanie z wariantami
  • 7.6. Granice tekstu
  • 7.7. Wczytywanie i wyświetlanie tekstów
    • 7.7.1. Pliki tekstowe
    • 7.7.2. Znaki końca wiersza
    • 7.7.3. Konsola
    • 7.7.4. BOM - znacznik kolejności bajtów UTF-8
    • 7.7.5. Kodowanie plików źródłowych
  • 7.8. Komplety zasobów
    • 7.8.1. Wyszukiwanie kompletów zasobów
    • 7.8.2. Pliki właściwości
    • 7.8.3. Klasy kompletów zasobów
  • 7.9. Kompletny przykład

8. Skrypty, kompilacja i adnotacje

  • 8.1. Interfejs kompilatora
    • 8.1.1. Wywoływanie kompilatora
    • 8.1.2. Uruchamianie zadania kompilacji
    • 8.1.3. Przechwytywanie informacji diagnostycznych
    • 8.1.4. Wczytywanie plików źródłowych z pamięci
    • 8.1.5. Zapis kodów bajtowych w pamięci
    • 8.1.6. Przykład: dynamiczne tworzenie kodu w języku Java
  • 8.2. Skrypty na platformie Java
    • 8.2.1. Wybór silnika skryptowego
    • 8.2.2. Wykonywanie skryptów i wiązania zmiennych
    • 8.2.3. Przekierowanie wejścia i wyjścia
    • 8.2.4. Wywoływanie funkcji i metod skryptów
    • 8.2.5. Kompilacja skryptu
    • 8.2.6. Przykład: arkusze skryptowe

9. Bezpieczeństwo

  • 9.1. Ładowanie klas
    • 9.1.1. Proces wczytywania plików klas
    • 9.1.2. Hierarchia klas ładowania
    • 9.1.3. Zastosowanie procedur ładujących w roli przestrzeni nazw
    • 9.1.4. Implementacja własnej procedury ładującej
    • 9.1.5. Weryfikacja kodu maszyny wirtualnej
  • 9.2. Uwierzytelnianie użytkowników
    • 9.2.1. Framework JAAS
    • 9.2.2. Moduły JAAS
  • 9.3. Podpis cyfrowy
    • 9.3.1. Skróty wiadomości
    • 9.3.2. Podpisywanie wiadomości
    • 9.3.3. Weryfikacja podpisu
    • 9.3.4. Problem uwierzytelniania
    • 9.3.5. Podpisywanie certyfikatów
    • 9.3.6. Żądania certyfikatu
    • 9.3.7. Podpisywanie kodu
    • 9.3.8. Skróty haseł
  • 9.4. Szyfrowanie
    • 9.4.1. Szyfrowanie symetryczne
    • 9.4.2. Generowanie klucza
    • 9.4.3. Strumienie szyfrujące
    • 9.4.4. Szyfrowanie kluczem publicznym

10. Graficzne interfejsy użytkownika

  • 10.1. Historia zestawów narzędzi do tworzenia interfejsów użytkownika
  • 10.2. Wyświetlanie ramki
    • 10.2.1. Tworzenie ramki
    • 10.2.2. Właściwości ramki
  • 10.3. Wyświetlanie informacji w komponencie
    • 10.3.1. Figury 2D
    • 10.3.2. Kolory
    • 10.3.3. Czcionki
    • 10.3.4. Wyświetlanie obrazów
  • 10.4. Obsługa zdarzeń
    • 10.4.1. Podstawowe koncepcje obsługi zdarzeń
    • 10.4.2. Przykład
    • obsługa kliknięcia przycisku
    • 10.4.3. Zwięzłe definiowanie procedur nasłuchowych
    • 10.4.4. Klasy adaptacyjne
    • 10.4.5. Akcje
    • 10.4.6. Zdarzenia generowane przez mysz
    • 10.4.7. Hierarchia zdarzeń w bibliotece AWT
  • 10.5. API Preferences

11. Komponenty Swing interfejsu użytkownika

  • 11.1. Swing i wzorzec model-widok-kontroler
  • 11.2. Wprowadzenie do zarządzania rozkładem
    • 11.2.1. Zarządcy układu
    • 11.2.2. Rozkład brzegowy
    • 11.2.3. Rozkład siatkowy
  • 11.3. Wprowadzanie tekstu
    • 11.3.1. Pola tekstowe
    • 11.3.2. Etykiety komponentów
    • 11.3.3. Pola haseł
    • 11.3.4. Obszary tekstowe
    • 11.3.5. Panele przewijane
  • 11.4. Komponenty umożliwiające wybór opcji
    • 11.4.1. Pola wyboru
    • 11.4.2. Przełączniki
    • 11.4.3. Obramowanie
    • 11.4.4. Listy rozwijane
    • 11.4.5. Suwaki
  • 11.5. Menu
    • 11.5.1. Tworzenie menu
    • 11.5.2. Ikony w elementach menu
    • 11.5.3. Pola wyboru i przełączniki jako elementy menu
    • 11.5.4. Menu podręczne
    • 11.5.5. Mnemoniki i akceleratory
    • 11.5.6. Aktywowanie i dezaktywowanie elementów menu
    • 11.5.7. Paski narzędzi
    • 11.5.8. Dymki
  • 11.6. Rozkład siatkowy
    • 11.6.1. Rozkład GridBagLayout
    • 11.6.2. Parametry gridx, gridy, gridwidth i gridheight
    • 11.6.3. Pola weight
    • 11.6.4. Parametry fill i anchor
    • 11.6.5. Dopełnienie
    • 11.6.6. Inny sposób ustawiania wartości parametrów gridx, gridy, gridwidth i gridheight
    • 11.6.7. Układ GridBagLayout - receptura
    • 11.6.8. Klasa pomocnicza ułatwiająca pracę z ograniczeniami GridBagLayout
  • 11.7. Niestandardowi zarządcy rozkładu
  • 11.8. Okna dialogowe
    • 11.8.1. Okna dialogowe opcji
    • 11.8.2. Tworzenie okien dialogowych
    • 11.8.3. Wymiana danych
    • 11.8.4. Okna dialogowe wyboru plików

12. Zaawansowane możliwości pakietu Swing i grafiki

  • 12.1. Tabele
    • 12.1.1. Najprostsze tabele
    • 12.1.2. Modele tabel
  • 12.2. Wiersze i kolumny
    • 12.2.1. Klasy kolumn
    • 12.2.2. Dostęp do kolumn tabeli
    • 12.2.3. Zmiana rozmiaru kolumn
    • 12.2.4. Zmiana rozmiaru wierszy
    • 12.2.5. Wybór wierszy, kolumn i komórek
    • 12.2.6. Sortowanie wierszy
    • 12.2.7. Filtrowanie wierszy
    • 12.2.8. Ukrywanie i wyświetlanie kolumn
  • 12.3. Rysowanie i edytowanie komórek
    • 12.3.1. Rysowanie komórek
    • 12.3.2. Wyświetlanie nagłówka
    • 12.3.3. Edytowanie komórek
    • 12.3.4. Tworzenie własnych edytorów
  • 12.4. Drzewa
    • 12.4.1. Proste drzewa
    • 12.4.2. Modyfikowanie drzew i ścieżek drzew
    • 12.4.3. Przeglądanie węzłów
    • 12.4.4. Rysowanie węzłów
    • 12.4.5. Nasłuchiwanie zdarzeń w drzewach
    • 12.4.6. Własne modele drzew
  • 12.5. Zaawansowane możliwości biblioteki AWT
    • 12.5.1. Potokowe tworzenie grafiki
    • 12.5.2. Figury
    • 12.5.3. Tworzenie kształtów
    • 12.5.4. Pola
    • 12.5.5. Ślad pędzla
    • 12.5.6. Wypełnienia
    • 12.5.7. Przekształcenia układu współrzędnych
    • 12.5.8. Przycinanie
    • 12.5.9. Przezroczystość i składanie obrazów
  • 12.6. Grafika rastrowa
    • 12.6.1. Odczyt i zapis plików graficznych
    • 12.6.2. Wykorzystanie obiektów zapisu i odczytu plików graficznych
    • 12.6.3. Odczyt i zapis plików zawierających sekwencje obrazów
    • 12.6.4. Operacje na obrazach
    • 12.6.5. Filtrowanie obrazów
  • 12.7. Drukowanie
    • 12.7.1. Drukowanie grafiki
    • 12.7.2. Drukowanie wielu stron
    • 12.7.3. Usługi drukowania
    • 12.7.4. Usługi drukowania za pośrednictwem strumieni
    • 12.7.5. Atrybuty drukowania

13. Metody macierzyste

  • 13.1. Wywołania funkcji języka C z programów w języku Java
  • 13.2. Numeryczne parametry metod i wartości zwracane
  • 13.3. Łańcuchy znaków jako parametry
  • 13.4. Dostęp do składowych obiektu
    • 13.4.1. Dostęp do pól instancji
    • 13.4.2. Dostęp do pól statycznych
  • 13.5. Sygnatury
  • 13.6. Wywoływanie metod języka Java
    • 13.6.1. Wywoływanie metod obiektów
    • 13.6.2. Wywoływanie metod statycznych
    • 13.6.3. Konstruktory
    • 13.6.4. Alternatywne sposoby wywoływania metod
  • 13.7. Dostęp do elementów tablic
  • 13.8. Obsługa błędów
  • 13.9. Interfejs programowy wywołań języka Java
  • 13.10. Kompletny przykład: dostęp do rejestru systemu Windows
    • 13.10.1. Rejestr systemu Windows
    • 13.10.2. Interfejs dostępu do rejestru na platformie Java
    • 13.10.3. Implementacja dostępu do rejestru za pomocą metod macierzystych
  • 13.11. Funkcje obce: spojrzenie w przyszłość

Skorowidz

Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-289-3005-6
Rozmiar pliku: 11 MB

BESTSELLERY

Menu

Zamknij