Java 2. Techniki zaawansowane - Helion
Tytuł oryginału: Core Java 2 Volume 2 Advanced Features
Tłumaczenie: Jaromir Senczyk
ISBN: 83-7197-985-1
stron: 1128, Format: B5, okładka: twarda
Data wydania: 2003-02-13
Księgarnia: Helion
Cena książki: 129,00 zł
- Przewodnik dla doświadczonych programistów omawiający zaawansowane możliwości platformy Java dla wersji JDK 1.3 i 1.4.
- Dostarcza wielu praktycznych przykładów kodu!
- Zawiera nowe bądź zaktualizowane omówienie: języka XML, problematyki bezpieczeństwa, programowania aplikacji sieciowych, wielowątkowości, kolekcji, zdalnych obiektów, interfejsu JDBC™, architektury komponentów JavaBeans™, biblioteki Swing i wielu innych zagadnień.
Książka ta dostarcza doświadczonym programistom rozwiązań niezbędnych do pełnego wykorzystania możliwości Javy. To praktyczny przewodnik ułatwiający rozwiązywanie nawet najbardziej złożonych problemów programistycznych. Dodatkowo zawiera zupełnie nowy rozdział poświęcony wykorzystaniu języka XML w programach pisanych w Javie oraz zaktualizowane omówienie wielu zaawansowanych możliwości tej platformy -- od kolekcji po metody macierzyste, od bezpieczeństwa po bibliotekę Swing.
Autorzy identyfikują problemy najczęściej napotykane przez doświadczonych programistów Javy i dostarczają przemyślanych rozwiązań zilustrowanych przykładami kodu, które uczyniły z tej książki prawdziwy bestseller. Dzięki niej ujrzysz w nowym świetle zagadnienia interfejsu ODBC™, tworzenia aplikacji sieciowych, wykorzystania zdalnych obiektów i wiele innych.
Najważniejsze informacje dla programistów Java:
- Zaktualizowane omówienie wielowątkowości, kolekcji i aplikacji sieciowych.
- Zmienione przedstawienie problematyki zdalnych obiektów.
- Nowe, zaawansowane techniki wykorzystania architektury komponentów JavaBeans™.
- Zaawansowane techniki tworzenia interfejsu użytkownika wykorzystujące biblioteki Swing i AWT.
O autorach:
CAY S. HORSTMANN wykłada informatykę na uniwersytecie stanowym w San Jose. Napisał sześć książek o C++, Javie i programowaniu zorientowanym obiektowo. Jest redaktorem naczelnym bestselerowego cyklu Core Series, wydawnictwa Prentice Hall PTR.
GARY CORNELL zrobił doktorat na uniwersytecie Brown i współpracował z IBM Watson Labs. Jest autorem lub współautorem 20 książek oraz wielu artykułów, wydrukowanych w czasopismach komputerowych. Obecnie kieruje programem Modern Visual Programming na Uniwersytecie Connecticut.
Osoby które kupowały "Java 2. Techniki zaawansowane", wybierały także:
- Metoda dziel i zwyci 89,00 zł, (26,70 zł -70%)
- Język C. Kurs video. Praktyczne wprowadzenie do programowania 99,00 zł, (29,70 zł -70%)
- Wprowadzenie do Javy. Programowanie i struktury danych. Wydanie XII 193,23 zł, (59,90 zł -69%)
- Spring i Spring Boot. Kurs video. Testowanie aplikacji i bezpiecze 125,42 zł, (45,15 zł -64%)
- Maven. Kurs video. Automatyzacja tworzenia aplikacji w Javie 98,98 zł, (39,59 zł -60%)
Spis treści
Java 2. Techniki zaawansowane -- spis treści
Podziękowania (9)
Przedmowa (11)
- Do Czytelnika (11)
- O książce (11)
Rozdział 1. Wielowątkowość (15)
- Czym są wątki? (16)
- Zastosowanie wątków (21)
- Uruchamianie i wykonywanie wątków (22)
- Wykonywanie wielu wątków (27)
- Interfejs Runnable (28)
- Przerywanie wątków (30)
- Właściwości wątków (32)
- Stany wątków (32)
- Odblokowanie wątku (35)
- Wątki martwe (35)
- Wątki-demony (36)
- Grupy wątków (36)
- Priorytety wątków (38)
- Wątki egoistyczne (45)
- Synchronizacja (51)
- Komunikacja między wątkami bez synchronizacji (51)
- Synchronizacja dostępu do współdzielonych zasobów (55)
- Blokady obiektów (60)
- Metody wait i notify (61)
- Bloki synchronizowane (66)
- Synchronizowane metody statyczne (67)
- Zakleszczenia (68)
- Dlaczego metody stop i suspend nie są zalecane? (71)
- Limity czasu (76)
- Programowanie interfejsu użytkownika przy użyciu wątków (77)
- Wątki i Swing (77)
- Animacja (85)
- Liczniki czasu (91)
- Paski postępu (94)
- Monitory postępu (99)
- Monitorowanie postępu strumieni wejścia (103)
- Zastosowanie potoków do komunikacji pomiędzy wątkami (109)
Rozdział 2. Kolekcje (115)
- Interfejsy kolekcji (115)
- Rozdzielenie interfejsów kolekcji od ich implementacji (116)
- Interfejsy Collection i Iterator w bibliotekach języka Java (118)
- Kolekcje konkretne (123)
- Listy powiązane (123)
- Klasa ArrayList (132)
- Zbiory z kodowaniem mieszającym (132)
- Zbiory drzewiaste (139)
- Mapy (145)
- Specjalizowane klasy map (150)
- Szkielet kolekcji (155)
- Widoki i opakowania (158)
- Operacje masowe (164)
- Wykorzystanie biblioteki kolekcji z tradycyjnymi bibliotekami (165)
- Algorytmy (166)
- Sortowanie i tasowanie (167)
- Wyszukiwanie binarne (170)
- Proste algorytmy (171)
- Programowanie własnych algorytmów (173)
- Tradycyjne kolekcje (174)
- Klasa Hashtable (174)
- Wyliczenia (175)
- Zbiory właściwości (176)
- Stosy (182)
- Zbiory bitów (182)
Rozdział 3. Programowanie aplikacji sieciowych (187)
- Połączenia z serwerem (188)
- Implementacja serwerów (191)
- Obsługa wielu klientów (194)
- Wysyłanie poczty elektronicznej (197)
- Zaawansowane programowanie przy użyciu gniazdek sieciowych (202)
- Połączenia wykorzystujące URL (207)
- URL i URI (208)
- Zastosowanie klasy URLConnection do pobierania informacji (210)
- Wysyłanie danych do formularzy (219)
- Skrypty CGI i serwlety (219)
- Wysyłanie danych do serwera stron internetowych (221)
- Zbieranie informacji w sieci Internet (227)
- Bezpieczeństwo apletów (233)
- Serwery proxy (236)
- Testowanie apletu prognozy pogody (243)
Rozdział 4. Połączenia do baz danych: JDBC (247)
- Architektura JDBC (248)
- Typowe zastosowania JDBC (251)
- Język SQL (252)
- Instalacja JDBC (258)
- Podstawowe koncepcje programowania przy użyciu JDBC (258)
- Adresy URL baz danych (259)
- Nawiązywanie połączenia (259)
- Wykonywanie poleceń języka SQL (264)
- Zaawansowane typy języka SQL (JDBC 2) (266)
- Wypełnianie bazy danych (268)
- Wykonywanie zapytań (272)
- Przewijalne i aktualizowalne zbiory wyników zapytań (282)
- Przewijalne zbiory rekordów (JDBC 2) (283)
- Aktualizowalne zbiory rekordów (JDBC 2) (286)
- Metadane (290)
- Transakcje (300)
- Aktualizacje wsadowe (JDBC 2) (301)
- Zaawansowane zarządzanie połączeniami (302)
Rozdział 5. Obiekty zdalne (305)
- Wprowadzenie do problematyki obiektów zdalnych: role klienta i serwera (306)
- Wywołania zdalnych metod (RMI) (308)
- Namiastka i szeregowanie parametrów (309)
- Dynamiczne ładowanie klas (311)
- Konfiguracja wywołania zdalnych metod (311)
- Interfejsy i implementacje (312)
- Odnajdywanie obiektów serwera (315)
- Po stronie klienta (319)
- Przygotowanie wdrożenia (323)
- Wdrożenie programu (326)
- Przekazywanie parametrów zdalnym metodom (326)
- Przekazywanie lokalnych obiektów (326)
- Przekazywanie zdalnych obiektów (338)
- Wykorzystanie zdalnych obiektów w zbiorach (341)
- Klonowanie zdalnych obiektów (342)
- Niewłaściwe zdalne parametry (343)
- Wykorzystanie RMI w apletach (344)
- Aktywacja obiektów serwera (348)
- Java IDL i CORBA (355)
- Język IDL (356)
- Przykład aplikacji CORBA (361)
- Implementacja serwerów CORBA (370)
Rozdział 6. Zaawansowane możliwości pakietu Swing (377)
- Listy (377)
- Komponent JList (378)
- Modele list (382)
- Wstawianie i usuwanie (387)
- Odrysowywanie zawartości listy (389)
- Drzewa (394)
- Najprostsze drzewa (395)
- Przeglądanie węzłów (410)
- Rysowanie węzłów (412)
- Nasłuchiwanie zdarzeń w drzewach (419)
- Własne modele drzew (425)
- Tabele (433)
- Najprostsze tabele (433)
- Modele tabel (437)
- Filtry sortujące (447)
- Rysowanie i edytowanie zawartości komórek (454)
- Operacje na wierszach i kolumnach (469)
- Wybór wierszy, kolumn i komórek (470)
- Komponenty formatujące tekst (478)
- Organizatory komponentów (484)
- Panele dzielone (485)
- Panele z zakładkami (489)
- Panele pulpitu i ramki wewnętrzne (494)
- Rozmieszczenie kaskadowe i sąsiadujące (497)
- Zgłaszanie weta do zmiany właściwości (500)
Rozdział 7. Zaawansowane możliwości biblioteki AWT (513)
- Potokowe tworzenie grafiki (514)
- Figury (516)
- Wykorzystanie klas obiektów graficznych (518)
- Pola (531)
- Ślad pędzla (535)
- Wypełnienia (543)
- Przekształcenia układu współrzędnych (549)
- Przycinanie (557)
- Przezroczystość i składanie obrazów (562)
- Wskazówki operacji graficznych (570)
- Czytanie i zapisywanie plików graficznych (575)
- Wykorzystanie obiektów zapisu i odczytu plików graficznych (576)
- Odczyt i zapis plików zawierających sekwencje obrazów (578)
- Operacje na obrazach (588)
- Dostęp do danych obrazu (588)
- Filtrowanie obrazów (595)
- Drukowanie (604)
- Drukowanie grafiki (604)
- Drukowanie wielu stron (614)
- Podgląd wydruku (616)
- Usługi drukowania (625)
- Usługi drukowania za pośrednictwem strumieni (631)
- Atrybuty drukowania (636)
- Schowek (643)
- Klasy i interfejsy umożliwiające przekazywanie danych (644)
- Przekazywanie tekstu (644)
- Interfejs Transferable i formaty danych (649)
- Przekazywanie obrazów za pomocą schowka (651)
- Wykorzystanie lokalnego schowka do przekazywania referencji obiektów (656)
- Wykorzystanie schowka systemowego do przekazywania obiektów Java (662)
- Mechanizm "przeciągnij i upuść" (666)
- Cele mechanizmu "przeciągnij i upuść" (668)
- Źródła mechanizmu "przeciągnij i upuść" (677)
- Przekazywanie danych pomiędzy komponentami Swing (683)
Rozdział 8. JavaBeans (687)
- Dlaczego ziarnka? (688)
- Proces tworzenia ziarnek JavaBeans (689)
- Wykorzystanie ziarnek do tworzenia aplikacji (693)
- Umieszczanie ziarnek w plikach JAR (694)
- Korzystanie z ziarnek (696)
- Wzorce nazw właściwości ziarnek i zdarzeń (701)
- Typy właściwości ziarnek (703)
- Właściwości proste (703)
- Właściwości indeksowane (704)
- Właściwości powiązane (705)
- Właściwości ograniczone (711)
- Tworzenie własnych zdarzeń związanych z ziarnkami (721)
- Edytory właściwości (727)
- Implementacja edytora właściwości (735)
- Klasa informacyjna ziarnka (749)
- Klasa FeatureDescriptor (751)
- Indywidualizacja ziarnka (758)
- Implementacja klasy indywidualizacji (760)
- Kontekst ziarnka (768)
- Zaawansowane zastosowanie introspekcji (768)
- Odnajdywanie ziarnek siostrzanych (771)
- Korzystanie z usług kontekstu ziarnka (773)
Rozdział 9. Bezpieczeństwo (783)
- Ładowanie klas (784)
- Implementacja własnej procedury ładującej (787)
- Weryfikacja kodu maszyny wirtualnej (794)
- Menedżery bezpieczeństwa i pozwolenia (799)
- Bezpieczeństwo na platformie Java 2 (801)
- Pliki polityki bezpieczeństwa (806)
- Tworzenie własnych klas pozwoleń (813)
- Implementacja klasy pozwoleń (814)
- Tworzenie własnych menedżerów bezpieczeństwa (820)
- Uwierzytelnianie użytkowników (828)
- Podpis cyfrowy (834)
- Skróty wiadomości (834)
- Podpisywanie wiadomości (840)
- Uwierzytelnianie wiadomości (847)
- Certyfikaty X.509 (849)
- Tworzenie certyfikatów (851)
- Podpisywanie certyfikatów (854)
- Podpisywanie kodu (861)
- Podpisywanie plików JAR (862)
- Wskazówki dotyczące wdrożenia (866)
- Certyfikaty twórców oprogramowania (867)
- Szyfrowanie (868)
- Szyfrowanie symetryczne (869)
- Szyfrowanie kluczem publicznym (875)
- Strumienie szyfrujące (880)
Rozdział 10. Internacjonalizacja (883)
- Lokalizatory (884)
- Liczby i waluty (890)
- Data i czas (896)
- Tekst (903)
- Porządek alfabetyczny (903)
- Granice tekstu (910)
- Formatowanie komunikatów (916)
- Formatowanie z wariantami (920)
- Konwersje zbiorów znaków (924)
- Internacjonalizacja a pliki źródłowe programów (925)
- Zasoby (926)
- Lokalizacja zasobów (927)
- Tworzenie klas zasobów (928)
- Lokalizacja graficznego interfejsu użytkownika (931)
- Lokalizacja apletu (934)
Rozdział 11. Metody macierzyste (951)
- Wywołania funkcji języka C z programów w języku Java (953)
- Wykorzystanie funkcji printf (954)
- Numeryczne parametry metod i wartości zwracane (959)
- Wykorzystanie funkcji printf do formatowania liczb (959)
- Łańcuchy znaków jako parametry (961)
- Wywołanie funkcji sprintf przez metodę macierzystą (964)
- Dostęp do składowych obiektu (966)
- Dostęp do statycznych składowych klasy (969)
- Sygnatury (971)
- Wywoływanie metod języka Java (973)
- Wywoływanie metod obiektów (973)
- Wywoływanie metod statycznych (976)
- Konstruktory (977)
- Alternatywne sposoby wywoływania metod (977)
- Tablice (980)
- Obsługa błędów (984)
- Interfejs programowy wywołań języka Java (989)
- Kompletny przykład: dostęp do rejestru systemu Windows (992)
- Rejestr systemu Windows (992)
- Interfejs dostępu do rejestru na platformie Java (994)
- Implementacja dostępu do rejestru za pomocą metod macierzystych (995)
Rozdział 12. Język XML (1009)
- Wprowadzenie do języka XML (1010)
- Struktura dokumentu XML (1012)
- Parsowanie dokumentów XML (1015)
- Definicje typów dokumentów (1026)
- Praktyczny przykład (1034)
- Przestrzenie nazw (1046)
- Wykorzystanie parsera SAX (1048)
- Tworzenie dokumentów XML (1053)
- Przekształcenia XSL (1061)
Skorowidz (1073)