Java techniki zaawansowane – Cay S. Horstmann

52,15 

Opis

Java jest dojrzałym językiem programowania, który pozwala na pisanie kodu dla wielu rodzajów komputerów służących do różnych celów i działających na różnych platformach. Jest świetnym wyborem dla programistów, którym zależy na tworzeniu bezpiecznych aplikacji o wyjątkowej jakości. Wokół Javy skupia się duża społeczność, dzięki której język ten wciąż się rozwija, unowocześnia i wzbogaca o nowe elementy. Osoby, które swoje zawodowe życie wiążą z pisaniem programów w Javie, muszą poznać zaawansowane zagadnienia i mniej oczywiste funkcjonalności Javy, również te niedawno zaimplementowane. To konieczność dla każdego profesjonalnego programisty Javy.Oto kolejne, przejrzane, zaktualizowane i uzupełnione wydanie znakomitego podręcznika dla zawodowych programistów Javy. Znalazł się tu dokładny opis sposobów tworzenia interfejsu użytkownika, stosowania rozwiązań korporacyjnych, sieciowych i zabezpieczeń, a także nowości wprowadzonych w JDK 11. Przedstawiono techniki programowania baz danych oraz umiędzynarodowiania aplikacji Javy. Sporo uwagi poświęcono bibliotece Swing oraz jej wykorzystaniu do tworzenia realistycznej grafiki i efektów specjalnych. Ponadto w książce zostały pokazane nowe możliwości języka – zademonstrowano, jak dzięki nim uzyskać wyjątkową jakość aplikacji, a zamieszczone przykłady opracowano pod kątem zrozumiałości i wartości praktycznej.W tej książce między innymi:API wejścia-wyjścia Javy, serializacja i wyrażenia regularneefektywne korzystanie z usług sieciowychklienty, serwery i pobieranie danych z internetumoduły platformy Javynowoczesne mechanizmy bezpieczeństwa w JavieJava: nowoczesny styl, najlepsze praktyki, sprawdzone rozwiązania!Spis treści:Wstęp 11Podziękowania 15Rozdział 1. Strumienie 171.1. Od iteracji do operacji na strumieniach 181.2. Tworzenie strumieni 201.3. Metody filter, map oraz flatMap 261.4. Pobieranie podstrumieni i łączenie strumieni 271.5. Inne przekształcenia strumieni 291.6. Proste operacje redukcji 301.7. Typ Optional 321.7.1. Pobieranie wartości Optional 321.7.2. Korzystanie z wartości Optional 331.7.3. Potoki wartości opcjonalnych 331.7.4. Jak nie należy używać wartości opcjonalnych 351.7.5. Tworzenie obiektów typu Optional 361.7.6. Łączenie funkcji zwracających wartości opcjonalne przy użyciu flatMap 361.7.7. Przekształcanie wartości opcjonalnej w strumień 371.8. Gromadzenie wyników 401.9. Gromadzenie wyników w mapach 441.10. Grupowanie i podział 481.11. Kolektory przetwarzające 501.12. Operacje redukcji 541.13. Strumienie danych typów prostych 571.14. Strumienie równoległe 62Rozdział 2. Wejście i wyjście 672.1. Strumienie wejścia-wyjścia 672.1.1. Odczyt i zapis bajtów 682.1.2. Zoo pełne strumieni 712.1.3. Łączenie filtrów strumieni wejścia-wyjścia 742.1.4. Strumienie tekstowe 782.1.5. Zapisywanie tekstu 792.1.6. Wczytywanie tekstu 812.1.7. Zapis obiektów w formacie tekstowym 822.1.8. Zbiory znaków 852.2. Odczyt i zapis danych binarnych 882.2.1. Interfejsy DataInput i DataOutput 882.2.2. Strumienie plików o swobodnym dostępie 902.2.3. Archiwa ZIP 942.3. Strumienie obiektów i serializacja 972.3.1. Zapisywanie i wczytywanie obiektów serializowalnych 972.3.2. Format pliku serializacji obiektów 1012.3.3. Modyfikowanie domyślnego mechanizmu serializacji 1072.3.4. Serializacja singletonów i wyliczeń 1092.3.5. Wersje 1102.3.6. Serializacja w roli klonowania 1132.4. Zarządzanie plikami 1152.4.1. Ścieżki dostępu 1152.4.2. Odczyt i zapis plików 1182.4.3. Tworzenie plików i katalogów 1192.4.4. Kopiowanie, przenoszenie i usuwanie plików 1202.4.5. Informacje o plikach 1222.4.6. Przeglądanie zawartości katalogu 1242.4.7. Stosowanie strumieni katalogów 1252.4.8. Systemy plików ZIP 1292.5. Mapowanie plików w pamięci 1302.5.1. Wydajność plików mapowanych w pamięci 1302.5.2. Struktura bufora danych 1362.6. Blokowanie plików 1382.7. Wyrażenia regularne 1402.7.1. Składnia wyrażeń regularnych 1412.7.2. Dopasowywanie wyrażeń regularnych do łańcucha 1452.7.3. Znajdowanie wielu dopasowań 1482.7.4. Podział w miejscach wystąpienia separatora 1502.7.5. Zastępowanie dopasowań 150Rozdział 3. Język XML 1553.1. Wprowadzenie do języka XML 1563.2. Struktura dokumentu XML 1583.3. Parsowanie dokumentów XML 1603.4. Kontrola poprawności dokumentów XML 1693.4.1. Definicje typów dokumentów 1703.4.2. XML Schema 1783.4.3. Praktyczny przykład 1803.5. Wyszukiwanie informacji i XPath 1863.6. Przestrzenie nazw 1903.7. Parsery strumieniowe 1933.7.1. Wykorzystanie parsera SAX 1933.7.2. Wykorzystanie parsera StAX 1983.8. Tworzenie dokumentów XML 2023.8.1. Dokumenty bez przestrzeni nazw 2023.8.2. Dokumenty z przestrzenią nazw 2033.8.3. Zapisywanie dokumentu 2033.8.4. Zapis dokumentu XML za pomocą parsera StAX 2063.8.5. Przykład: tworzenie pliku SVG 2103.9. Przekształcenia XSL 212Rozdział 4. Programowanie aplikacji sieciowych 2214.1. Połączenia z serwerem 2214.1.1. Stosowanie programu telnet 2214.1.2. Nawiązywanie połączenia z serwerem z wykorzystaniem Javy 2244.1.3. Limity czasu gniazd 2254.1.4. Adresy internetowe 2274.2. Implementacja serwerów 2284.2.1. Gniazda serwera 2294.2.2. Obsługa wielu klientów 2314.2.3. Połączenia częściowo zamknięte 2354.2.4. Przerywanie działania gniazd sieciowych 2364.3. Połączenia wykorzystujące URL 2424.3.1. URL i URI 2424.3.2. Zastosowanie klasy URLConnection do pobierania informacji 2444.3.3. Wysyłanie danych do formularzy 2514.4. Klient HTTP 2594.5. Wysyłanie poczty elektronicznej 266Rozdział 5. Programowanie baz danych: JDBC 2715.1. Architektura JDBC 2725.1.1. Typy sterowników JDBC 2725.1.2. Typowe zastosowania JDBC 2745.2. Język SQL 2745.3. Instalacja JDBC 2805.3.1. Adresy URL baz danych 2805.3.2. Pliki JAR zawierające sterownik 2815.3.3. Uruchamianie baz danych 2815.3.4. Rejestracja klasy sterownika 2825.3.5. Nawiązywanie połączenia z bazą danych 2835.4. Stosowanie poleceń SQL 2855.4.1. Wykonywanie poleceń SQL 2855.4.2. Zarządzanie połączeniami, poleceniami i zbiorami wyników 2895.4.3. Analiza wyjątków SQL 2895.4.4. Wypełnianie bazy danych 2925.5. Wykonywanie zapytań 2955.5.1. Polecenia przygotowane 2965.5.2. Odczyt i zapis dużych obiektów 3015.5.3. Sekwencje sterujące 3035.5.4. Zapytania o wielu zbiorach wyników 3055.5.5. Pobieranie wartości kluczy wygenerowanych automatycznie 3065.6. Przewijalne i aktualizowalne zbiory wyników zapytań 3065.6.1. Przewijalne zbiory wyników 3075.6.2. Aktualizowalne zbiory rekordów 3095.7. Zbiory rekordów 3135.7.1. Tworzenie zbiorów rekordów 3135.7.2. Buforowane zbiory rekordów 3145.8. Metadane 3175.9. Transakcje 3265.9.1. Programowanie transakcji w JDBC 3265.9.2. Punkty kontrolne 3275.9.3. Aktualizacje wsadowe 3275.9.4. Zaawansowane typy języka SQL 3305.10. Zaawansowane zarządzanie połączeniami 331Rozdział 6. API dat i czasu 3336.1. Oś czasu 3346.2. Daty lokalne 3386.3. Modyfikatory dat 3436.4. Czas lokalny 3446.5. Czas strefowy 3466.6. Formatowanie i parsowanie 3516.7. Współdziałanie ze starym kodem 355Rozdział 7. Internacjonalizacja 3577.1. Lokalizatory 3587.1.1. Dlaczego stosuje się lokalizatory? 3587.1.2. Określanie lokalizatorów 3597.1.3. Lokalizator domyślny 3617.1.4. Nazwa lokalizatora 3627.2. Formaty liczb 3647.2.1. Formatowanie wartości liczbowych 3647.2.2. Waluty 3697.3. Data i czas 3717.4. Porządek alfabetyczny i normalizacja 3777.5. Formatowanie komunikatów 3847.5.1. Formatowanie liczb i dat 3847.5.2. Formatowanie z wariantami 3867.6. Wczytywanie i wyświetlanie tekstów 3887.6.1. Pliki tekstowe 3887.6.2. Znaki końca wiersza 3887.6.3. Konsola 3897.6.4. Pliki dzienników 3907.6.5. BOM – znacznik kolejności bajtów UTF-8 3907.6.6. Kodowanie plików źródłowych 3917.7. Komplety zasobów 3917.7.1. Wyszukiwanie kompletów zasobów 3927.7.2. Pliki właściwości 3937.7.3. Klasy kompletów zasobów 3937.8. Kompletny przykład 396Rozdział 8. Skrypty, kompilacja i adnotacje 4118.1. Skrypty na platformie Java 4118.1.1. Wybór silnika skryptów 4128.1.2. Wykonywanie skryptów i wiązania zmiennych 4138.1.3. Przekierowanie wejścia i wyjścia 4158.1.4. Wywoływanie funkcji i metod skryptów 4168.1.5. Kompilacja skryptu 4188.1.6. Przykład: skrypty i graficzny interfejs użytkownika 4188.2. Interfejs kompilatora 4238.2.1. Wywoływanie kompilatora 4238.2.2. Uruchamianie zadania kompilacji 4248.2.3. Przechwytywanie informacji diagnostycznych 4258.2.4. Wczytywanie plików źródłowych z pamięci 4258.2.5. Zapis kodów bajtowych w pamięci 4268.2.6. Przykład: dynamiczne tworzenie kodu w języku Java 4278.3. Stosowanie adnotacji 4338.3.1. Wprowadzenie do stosowania adnotacji 4348.3.2. Przykład: adnotacje obsługi zdarzeń 4358.4. Składnia adnotacji 4408.4.1. Interfejsy adnotacji 4408.4.2. Adnotacje 4418.4.3. Adnotacje deklaracji 4438.4.4. Adnotacje zastosowań typów 4448.4.5. Adnotacje i this 4458.5. Adnotacje standardowe 4478.5.1. Adnotacje kompilacji 4488.5.2. Adnotacje zarządzania zasobami 4488.5.3. Metaadnotacje 4498.6. Przetwarzanie adnotacji w kodzie źródłowym 4528.6.1. Procesory adnotacji 4528.6.2. Interfejs programowy modelu języka 4528.6.3. Stosowanie adnotacji do generacji kodu źródłowego 4538.7. Inżynieria kodu bajtowego 4568.7.1. Modyfikowanie plików klasowych 4568.7.2. Modyfikacja kodu bajtowego podczas ładowania 461Rozdział 9. System modułów platformy Javy 4659.1. Pojęcie modułu 4669.2. Nadawanie nazw modułom 4679.3. Modularny program „Witaj, świecie!” 4689.4. Żądanie użycia modułów 4709.5. Eksportowanie pakietów 4719.6. Modularne pliki JAR 4759.7. Moduły a technika refleksji 4769.8. Moduły automatyczne 4799.9. Moduł nienazwany 4819.10. Flagi wiersza poleceń stosowane podczas migracji 4829.11. Wymagania przechodnie i statyczne 4849.12. Eksport kwalifikowany i otwieranie 4859.13. Wczytywanie usług 4869.14. Narzędzia do pracy z modułami 489Rozdział 10. Bezpieczeństwo 49310.1. Ładowanie klas 49410.1.1. Proces wczytywania plików klas 49410.1.2. Hierarchia klas ładowania 49510.1.3. Zastosowanie procedur ładujących w roli przestrzeni nazw 49710.1.4. Implementacja własnej procedury ładującej 49810.1.5. Weryfikacja kodu maszyny wirtualnej 50410.2. Menedżery bezpieczeństwa i pozwolenia 50810.2.1. Sprawdzanie uprawnień 50810.2.2. Bezpieczeństwo na platformie Java 50910.2.3. Pliki polityki bezpieczeństwa 51210.2.4. Tworzenie własnych klas pozwoleń 51910.2.5. Implementacja klasy pozwoleń 52010.3. Uwierzytelnianie użytkowników 52610.3.1. Framework JAAS 52610.3.2. Moduły JAAS 53110.4. Podpis cyfrowy 54010.4.1. Skróty wiadomości 54110.4.2. Podpisywanie wiadomości 54410.4.3. Weryfikacja podpisu 54610.4.4. Problem uwierzytelniania 54810.4.5. Podpisywanie certyfikatów 55010.4.6. Żądania certyfikatu 55110.4.7. Podpisywanie kodu 55210.5. Szyfrowanie 55510.5.1. Szyfrowanie symetryczne 55510.5.2. Generowanie klucza 55710.5.3. Strumienie szyfrujące 56110.5.4. Szyfrowanie kluczem publicznym 562Rozdział 11. Zaawansowane możliwości pakietu Swing i grafiki 56711.1. Tabele 56711.1.1. Najprostsze tabele 56811.1.2. Modele tabel 57111.1.3. Wiersze i kolumny 57511.1.4. Rysowanie i edycja komórek 59011.2. Drzewa 60111.2.1. Proste drzewa 60211.2.2. Przeglądanie węzłów 61611.2.3. Rysowanie węzłów 61811.2.4. Nasłuchiwanie zdarzeń w drzewach 62111.2.5. Własne modele drzew 62711.3. Zaawansowane możliwości biblioteki AWT 63511.3.1. Potokowe tworzenie grafiki 63511.3.2. Figury 63811.3.3. Pola 65211.3.4. Ślad pędzla 65311.3.5. Wypełnienia 66111.3.6. Przekształcenia układu współrzędnych 66311.3.7. Przycinanie 66811.3.8. Przezroczystość i składanie obrazów 67011.4. Grafika rastrowa 67811.4.1. Odczyt i zapis plików graficznych 67811.4.2. Operacje na obrazach 68811.5. Drukowanie 70311.5.1. Drukowanie grafiki 70311.5.2. Drukowanie wielu stron 71111.5.3. Usługi drukowania 72011.5.4. Usługi drukowania za pośrednictwem strumieni 72211.5.5. Atrybuty drukowania 725Rozdział 12. Metody macierzyste 73312.1. Wywołania funkcji języka C z programów w języku Java 73412.2. Numeryczne parametry metod i wartości zwracane 74012.3. Łańcuchy znaków jako parametry 74212.4. Dostęp do składowych obiektu 74712.4.1. Dostęp do pól instancji 74712.4.2. Dostęp do pól statycznych 75112.5. Sygnatury 75212.6. Wywoływanie metod języka Java 75412.6.1. Wywoływanie metod obiektów 75412.6.2. Wywoływanie metod statycznych 75712.6.3. Konstruktory 75812.6.4. Alternatywne sposoby wywoływania metod 75812.7. Dostęp do elementów tablic 76012.8. Obsługa błędów 76412.9. Interfejs programowy wywołań języka Java 76812.10. Kompletny przykład: dostęp do rejestru systemu Windows 77312.10.1. Rejestr systemu Windows 77312.10.2. Interfejs dostępu do rejestru na platformie Java 77512.10.3. Implementacja dostępu do rejestru za pomocą metod macierzystych 776Skorowidz 789O 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ą.

transport psa samolotem, oferty pracy kierownik serwisu, ile kosztuje kilogram puszek 2020, radar burzowy na żywo, praca go sport, dinolandia bon turystyczny, za szybcy za wściekli 7 lektor pl

yyyyy