Java. Techniki zaawansowane. Wydanie XIII Mińsk Mazowiecki

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 …

od 143,52 Najbliżej: 49 km

Liczba ofert: 1

Oferta sklepu

Opis

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 O autorze: Cay S. Horstmann jest głównym autorem książek Java. Podstawy. Wydanie IX i Java. Techniki zaawansowane. Wydanie IX - najpopularniejszych w Polsce podręczników do nauki Javy. Cay jest profesorem informatyki na Uniwersytecie Stanowym w San José, ma tytuł Java Champion i często wygłasza odczyty na konferencjach związanych z branżą komputerową.

Specyfikacja

Podstawowe informacje

Autor
  • Horstmann Cay S.
Wybrani autorzy
  • Cay Horstmann
Wydawnictwo
  • Helion
Okładka
  • Twarda
Rok wydania
  • 2025
Ilość stron
  • 904
Tematyka
  • Programowanie
ISBN
  • 9788328930049