okladka

Przejdź na wyższy poziom programowania dzięki dwóm "guru" Javy: Herbowi Schildtowi i Jamesowi Holmesowi. Połączenie ich wiedzy pozwoli Ci poznać wiele sekretów i sztuczek wykorzystywanych przez profesjonalistów. W książce autorzy przedstawiają przykłady użytecznych aplikacji oraz towarzyszące im opisy użytych technologii. Prezentowane przykłady możesz wykorzystać w swojej codziennej pracy. Począwszy od interpreterów języka, agentów internetowych i podsystemów e-mail, skończywszy na analizatorach wyrażeń, narzędziach statystycznych i apletach finansowych -- wszystkie aplikacje są gotowe do użycia. Można je też dowolnie modyfikować i rozszerzać.

W książce znajdziesz:
  • Omówienie zalet języka Java,
  • Tworzenie analizatora wyrażeń numerycznych,
  • Tworzenie agenta przeszukującego internet,
  • Projektowanie i implementacja interpretera języka programowania,
  • Wykonanie funkcjonalnego systemu pocztowego,
  • Konstruowanie programu do pobierania danych z internetu z możliwością pobierania fragmentów stron,
  • Wykonanie narzędzi statystycznych obliczających średnia, medianę, modalną, odchylenie standardowe, itp.
  • Wykonanie apletów i serwletów finansowych obliczających równe raty pożyczki, przyszłą wartość inwestycji, kwotę emerytury, itp.
  • Prześledzenie różnych technik wyszukiwania bazujących na sztucznej inteligencji,
  • Zapoznanie się z możliwością przeglądania stron HTML-a w Javie.

O autorach:
Herb Schildt jest autorytetem w sprawach języków C, C++, Java i C#, a także doskonałym programistą systemu Windows. [więcej...\

James Holmes jest konsultantem do spraw tworzenia programowania oraz aplikacji serwerowych w środowiskach biznesowych. [więcej...\

Jeżeli poznałeś już podstawy Javy, to czas na następny krok.

  • Uwolnij siłę drzemiącą w Javie i w jej bibliotekach.
  • Niezwykle różnorodne przykłady praktycznych aplikacji.
  • Cenny kod źródłowy do wykorzystania we własnych projektach.

O Autorach (7)
Przedmowa (9)
Rozdział 1. Geniusz Javy (13)
  • Typy proste i obiekty - odpowiednia równowaga (14)
  • Zarządzanie pamięcią przez usuwanie niepotrzebnych obiektów (15)
  • Elegancki i prosty model wielowątkowy (16)
  • W pełni zintegrowane wyjątki (16)
  • Zaakcentowanie znaczenia polimorfizmu (17)
  • Przenośność i bezpieczeństwo dzięki kodowi bajtowemu (18)
  • Bogactwo interfejsów programistycznych Javy (18)
  • Aplet (19)
  • Ciągła rewolucja (20)
Rozdział 2. Rekurencyjny analizator wyrażeń (21)
  • Wyrażenia (22)
  • Analiza wyrażeń - problem (22)
  • Przetwarzanie wyrażenia (23)
  • Rozbijanie wyrażenia (25)
  • Prosty analizator wyrażeń (28)
    • Opis działania analizatora (34)
  • Dodawanie zmiennych do analizatora (35)
  • Sprawdzanie składni w analizatorze rekurencyjnym (43)
  • Aplet kalkulatora (44)
  • Możliwe modyfikacje (46)
Rozdział 3. Implementacja interpreterów języków w Javie (47)
  • Jaki język programowana interpretować? (48)
  • Wstęp do interpretera (49)
  • Interpreter języka SBASIC (50)
  • Analizator wyrażeń języka SBASIC (67)
    • Wyrażenia w SBASIC (67)
    • Tokeny SBASIC (68)
  • Interpreter (72)
    • Klasa InterpreterException (72)
    • Konstruktor klasy SBasic (72)
    • Słowa kluczowe (74)
    • Metoda run() (75)
    • Metoda sbInterp() (76)
    • Przypisanie (77)
    • Instrukcja PRINT (78)
    • Instrukcja INPUT (79)
    • Instrukcja GOTO (80)
    • Instrukcja IF (83)
    • Pętla FOR (83)
    • Instrukcja GOSUB (86)
    • Instrukcja END (87)
  • Wykorzystanie języka SBASIC (87)
    • Inne przykładowe programy języka SBASIC (88)
  • Rozszerzanie interpretera (90)
  • Tworzenie własnego języka programowania (90)
Rozdział 4. Wykonanie menedżera pobierania plików w Javie (91)
  • Sposoby pobierania plików z internetu (92)
  • Omówienie programu (92)
  • Klasa Download (93)
    • Zmienne pobierania (97)
    • Konstruktor klasy (97)
    • Metoda download() (97)
    • Metoda run() (97)
    • Metoda stateChanged() (101)
    • Metody akcesorowe i działań (101)
  • Klasa ProgressRenderer (101)
  • Klasa DownloadsTableModel (102)
    • Metoda addDownload() (104)
    • Metoda clearDownload() (105)
    • Metoda getColumnClass() (105)
    • Metoda getValueAt() (105)
    • Metoda update() (106)
  • Klasa DownloadManager (106)
    • Zmienne klasy DownloadManager (111)
    • Konstruktor klasy (112)
    • Metoda verifyUrl() (112)
    • Metoda tableSelectionChanged() (113)
    • Metoda updateButtons() (113)
    • Obsługa zdarzeń akcji (114)
  • Kompilacja i uruchamianie programu (115)
  • Rozszerzanie możliwości programu (115)
Rozdział 5. Implementacja klienta e-mail w Javie (117)
  • Poczta elektroniczna od podszewki (118)
    • POP3 (118)
    • IMAP (118)
    • SMTP (118)
    • Ogólna procedura wysyłania lub odbierania wiadomości e-mail (119)
  • Interfejs programistyczny JavaMail (119)
    • Ogólny opis wykorzystania biblioteki (120)
  • Prosty klient poczty elektronicznej (121)
    • Klasa ConnectDialog (122)
    • Klasa DownloadingDialog (127)
    • Klasa MessageDialog (128)
    • Klasa MessageTableModel (134)
    • Klasa EmailClient (138)
  • Kompilacja i uruchamianie klienta poczty (153)
  • Rozszerzanie możliwości klienta (154)
Rozdział 6. Przeszukiwanie sieci za pomocą Javy (155)
  • Podstawy funkcjonowania agenta internetowego (156)
  • Omówienie protokołu robot (157)
  • Wprowadzenie do agenta wyszukiwania (158)
  • Klasa SearchCrawler (158)
    • Zmienne klasy (173)
    • Konstruktor klasy SearchCrawler (173)
    • Metoda actionSearch() (174)
    • Metoda search() (176)
    • Metoda showError() (179)
    • Metoda updateStats() (179)
    • Metoda addMatch() (180)
    • Metoda verifyUrl() (180)
    • Metoda isRobotAllowed() (181)
    • Metoda downloadPage() (183)
    • Metoda removeWwwFromUrl() (184)
    • Metoda retrieveLinks() (185)
    • Metoda searchStringMatches() (191)
    • Metoda crawl() (192)
  • Kompilacja i uruchomienie programu (194)
  • Możliwe zastosowania agentów internetowych (196)
Rozdział 7. Rendering HTML w Javie (197)
  • Rendering HTML w edytorze JEditorPane (197)
  • Obsługa zdarzeń łączy (198)
  • Tworzenie prostej przeglądarki internetowej (199)
    • Klasa MiniBrowser (199)
    • Zmienne klasy MiniBrowser (204)
    • Konstruktor klasy (205)
    • Metoda actionBack() (205)
    • Metoda actionForward() (206)
    • Metoda actionGo() (206)
    • Metoda showError() (207)
    • Metoda verifyUrl() (207)
    • Metoda showPage() (207)
    • Metoda updateButtons() (209)
    • Metoda hyperlinkUpdate() (210)
  • Kompilacja i uruchomienie przeglądarki (210)
  • Zastosowania renderingu HTML (211)
Rozdział 8. Statystyka i wykresy (213)
  • Próbki, zbiory, rozkład i zmienne (214)
  • Podstawy statystyki (215)
    • Średnia (215)
    • Mediana (216)
    • Moda (dominanta) (216)
  • Wariancje i odchylenie standardowe (218)
  • Równanie regresji (219)
    • Współczynnik korelacji (221)
  • Cała klasa Stats (223)
  • Tworzenie wykresów (226)
    • Skalowanie danych (226)
    • Klasa Graphs (227)
    • Zmienne klasy Graphs (231)
    • Konstruktor klasy Graphs (232)
    • Metoda paint() (234)
    • Metoda bargraph() (237)
    • Metoda scatter() (237)
    • Metoda regplot() (237)
  • Aplikacja tworzenia statystyk (238)
    • Konstruktor klasy StatsWin (242)
    • Procedura obsługi itemStateChanged() (243)
    • Metoda actionPerformed() (244)
    • Metoda shutdown() (244)
    • Metoda createMenu() (244)
    • Klasa DataWin (244)
    • Łączymy wszystko razem (245)
  • Prosty aplet ze statystykami (247)
  • Możliwe udoskonalenia (249)
Rozdział 9. Aplety i serwlety finansowe (251)
  • Znajdowanie raty kredytu (252)
    • Pola apletu (255)
    • Metoda init() (256)
    • Metoda actionPerformed() (258)
    • Metoda paint() (258)
    • Metoda compute() (259)
  • Znajdowanie przyszłej wartości inwestycji (260)
  • Znajdowanie wkładu początkowego wymaganego do uzyskania przyszłej wartości inwestycji (263)
  • Znalezienie inwestycji początkowej wymaganej do uzyskania odpowiedniej emerytury (267)
  • Znajdowanie maksymalnej emerytury dla danej inwestycji (271)
  • Obliczenie pozostałej kwoty do spłaty kredytu (275)
  • Tworzenie serwletów finansowych (278)
    • Serwer Tomcat (278)
    • Konwersja apletu RegPay do serwletu (280)
    • Serwlet RegPayS (280)
  • Możliwe rozszerzenia (283)
Rozdział 10. Rozwiązywanie problemów za pomocą sztucznej inteligencji (285)
  • Reprezentacja i terminologia (286)
  • Rosnąca liczba kombinacji (287)
  • Techniki wyszukiwania (288)
    • Obliczanie wyszukiwania (289)
  • Problem (289)
    • Reprezentacja graficzna (290)
  • Klasa FlightInfo (291)
  • Wyszukiwanie w głąb (291)
    • Analiza wyszukiwania w głąb (300)
  • Wyszukiwanie wszerz (300)
    • Analiza wyszukiwania wszerz (302)
  • Dodanie heurystyki (303)
    • Wyszukiwanie wspinaczkowe (304)
    • Analiza wyszukiwania wspinaczkowego (308)
    • Wyszukiwanie najmniejszego kosztu (309)
    • Analiza wyszukiwania najmniejszego kosztu (310)
  • Znajdowanie wielu rozwiązań (311)
    • Usuwanie ścieżek (311)
    • Usuwanie węzłów (312)
  • Znalezienie "optymalnego" rozwiązania (317)
  • Powrót do zagubionych kluczy (321)
Skorowidz (325)