POLISH

Java. Receptury

Book information

Publisher
Helion
Year
2015
Language
polish
Format
PDF
Filesize
9 MB (9046058 bytes)
Edition
3
Pages
872\872
Time added
2018-10-12 16:50:27

Description

Rozwiązania i przykłady dla programistów używających języka Java Java to jeden z języków programowania najchętniej wybieranych do tworzenia zaawansowanych systemów informatycznych. Systemy bankowe, aukcyjne oraz inne zaawansowane programy wspomagające codzienną pracę tysięcy ludzi opierają się na Javie i narzędziach z nią związanych. Jeżeli chcesz śmiało wkroczyć w świat tego języka, musisz mieć tę książkę! Książka należy do cenionej serii „Receptury”, która przedstawia różne zagadnienia w postaci krótkich przepisów. Nie inaczej jest w tym przypadku. Sięgnij po nią i zobacz, jak kompilować, uruchamiać i testować tworzony kod. W kolejnych rozdziałach zaznajomisz się z najlepszymi metodami przetwarzania ciągów znaków oraz nauczysz się korzystać z wyrażeń regularnych i wykonywać operacje na liczbach. Ponadto zdobędziesz dogłębną wiedzę na temat systemu wejścia-wyjścia, używania systemu plików, sieci oraz drukarek. Książka ta jest obowiązkową pozycją na półce każdego programisty Javy! Przedstawione receptury obejmują: Sposoby kompilacji, uruchamiania i testowania aplikacji. Manipulację, porównywanie i zmianę organizacji tekstów. Użycie wyrażeń regularnych do dopasowywania tekstów i wzorców. Obsługę liczb, dat i czasu. Określanie struktury danych przy użyciu kolekcji, tablicy i innych typów. Techniki programowania obiektowego i funkcyjnego. Operacje na katalogach i systemie plików. Obsługę grafiki, dźwięku i wideo. Tworzenia aplikacji o graficznym interfejsie użytkownika, w tym Java FX i obsługę zdarzeń. Programowanie sieciowe, zarówno klientów jak i serwerów. Dostęp do baz danych przy użyciu JPA, Hibernate oraz JDBC. Przetwarzenie danych w formatach JSON oraz XML. Wielowątkowość i współbieżność. Najlepsze przepisy dla programistów Javy! Spis treści......Page 3 Wstęp......Page 13 Wstęp do poprzednich wydań......Page 14 Co można znaleźć w tej książce?......Page 15 Informacje o platformach......Page 19 Inne książki......Page 20 Konwencje stosowane w niniejszej książce......Page 24 Przykładowe programy......Page 25 Podziękowania......Page 26 1.0. Wprowadzenie......Page 31 1.1. Kompilacja i uruchamianie programów napisanych w Javie — JDK......Page 32 1.2. Edycja i kompilacja programów przy użyciu edytorów wyposażonych w kolorowanie syntaktyczne......Page 33 1.3. Kompilacja, uruchamianie i testowanie programów przy użyciu IDE......Page 35 1.4. Efektywne wykorzystanie zmiennej środowiskowej CLASSPATH......Page 42 1.5. Pobieranie przykładów dołączonych do tej książki i korzystanie z nich......Page 44 1.6. Automatyzacja kompilacji przy użyciu programu Ant......Page 50 1.7. Automatyzacja zależności, kompilacji, testowania i wdrażania przy użyciu programu Apache Maven......Page 53 1.8. Automatyzacja zależności, kompilacji, testowania i wdrażania przy użyciu programu Gradle......Page 56 1.9. Komunikaty o odrzuconych metodach......Page 59 1.10. Testowanie warunkowe bez użycia dyrektywy #ifdef......Page 61 1.11. Zapewnianie poprawności programu za pomocą asercji......Page 63 1.12. Wykorzystanie programu uruchomieniowego......Page 64 1.13. Testowanie jednostkowe — jak uniknąć konieczności stosowania programów uruchomieniowych?......Page 66 1.14. Zarządzanie kodem z wykorzystaniem ciągłej integracji......Page 69 1.16. Poszukiwanie przykładowych kodów źródłowych: programy, szkielety i biblioteki......Page 74 2.1. Pobieranie wartości zmiennych środowiskowych......Page 79 2.2. Pobieranie informacji z właściwości systemowych......Page 81 2.3. Określanie używanej wersji JDK......Page 82 2.4. Tworzenie kodu zależnego od używanego systemu operacyjnego......Page 84 2.6. Analiza argumentów podanych w wierszu wywołania programu......Page 87 3.0. Wprowadzenie......Page 95 3.1. Odczytywanie fragmentów łańcucha......Page 97 3.2. Dzielenie łańcuchów na słowa......Page 98 3.3. Łączenie łańcuchów znaków przy użyciu klasy StringBuilder......Page 102 3.4. Przetwarzanie łańcucha znaków po jednej literze......Page 104 3.5. Wyrównywanie łańcuchów znaków......Page 105 3.6. Konwersja pomiędzy znakami Unicode a łańcuchami znaków......Page 108 3.7. Odwracanie kolejności słów lub znaków w łańcuchu......Page 110 3.8. Rozwijanie i kompresja znaków tabulacji......Page 111 3.9. Kontrola wielkości liter......Page 116 3.10. Wcinanie zawartości dokumentów tekstowych......Page 117 3.11. Wprowadzanie znaków niedrukowalnych......Page 118 3.12. Usuwanie odstępów z końca łańcucha......Page 119 3.13. Przetwarzanie danych rozdzielonych przecinkami......Page 120 3.14. Program — proste narzędzie do formatowania tekstów......Page 125 3.15. Program — fonetyczne porównywanie nazwisk......Page 127 4.0. Wprowadzenie......Page 131 4.1. Składnia wyrażeń regularnych......Page 133 4.2. Wykorzystanie wyrażeń regularnych w języku Java — sprawdzanie występowania wzorca......Page 140 4.3. Odnajdywanie tekstu pasującego do wzorca......Page 143 4.4. Zastępowanie określonego tekstu......Page 146 4.5. Wyświetlanie wszystkich wystąpień wzorca......Page 147 4.6. Wyświetlanie wierszy zawierających fragment pasujący do wzorca......Page 149 4.7. Kontrola wielkości znaków w metodach match() i subst()......Page 150 4.8. Dopasowywanie znaków z akcentami lub znaków złożonych......Page 152 4.9. Odnajdywanie znaków nowego wiersza......Page 153 4.10. Program — analiza dziennika serwera Apache......Page 155 4.11. Program — analizowanie danych......Page 156 4.12. Program — pełna wersja programu grep......Page 159 5.0. Wprowadzenie......Page 165 5.1. Sprawdzanie, czy łańcuch znaków stanowi poprawną liczbę......Page 168 5.2. Zapisywanie dużych wartości w zmiennych „mniejszych” typów......Page 170 5.3. Konwertowanie liczb na obiekty i na odwrót......Page 171 5.4. Pobieranie ułamka z liczby całkowitej bez konwertowania go na postać zmiennoprzecinkową......Page 172 5.5. Wymuszanie zachowania dokładności liczb zmiennoprzecinkowych......Page 173 5.6. Porównywanie liczb zmiennoprzecinkowych......Page 175 5.7. Zaokrąglanie wartości zmiennoprzecinkowych......Page 177 5.8. Formatowanie liczb......Page 178 5.9. Konwersje pomiędzy różnymi systemami liczbowymi — dwójkowym, ósemkowym, dziesiętnym i szesnastkowym......Page 181 5.10. Operacje na grupie liczb całkowitych......Page 182 5.11. Posługiwanie się cyframi rzymskimi......Page 183 5.12. Formatowanie z zachowaniem odpowiedniej postaci liczby mnogiej......Page 187 5.13. Generowanie liczb losowych......Page 189 5.15. Obliczanie logarytmów......Page 192 5.16. Mnożenie macierzy......Page 193 5.17. Operacje na liczbach zespolonych......Page 195 5.18. Obsługa liczb o bardzo dużych wartościach......Page 197 5.19. Program TempConverter......Page 200 5.20. Program — generowanie liczbowych palindromów......Page 201 6.0. Wprowadzenie......Page 205 6.1. Określanie bieżącej daty......Page 208 6.2. Wyświetlanie daty i czasu w zadanym formacie......Page 209 6.3. Konwersja liczb określających datę i czas oraz ilości sekund......Page 211 6.4. Analiza łańcuchów znaków i ich zamiana na daty......Page 212 6.5. Obliczanie różnic pomiędzy dwiema datami......Page 213 6.6. Dodawanie i odejmowanie dat......Page 214 6.7. Stosowanie starych klas Date i Calendar......Page 215 7.0. Wprowadzenie......Page 217 7.1. Strukturalizacja danych przy użyciu tablic......Page 218 7.2. Modyfikacja wielkości tablic......Page 220 7.3. Szkielet kolekcji......Page 221 7.4. Klasa podobna do tablicy, lecz bardziej dynamiczna......Page 223 7.5. Stosowanie kolekcji ogólnych......Page 225 7.6. Unikanie rzutowania dzięki zastosowaniu typów ogólnych......Page 227 7.7. Jak przeglądać zawartość kolekcji? Wyliczenie dostępnych sposobów......Page 230 7.8. Unikanie powtórzeń dzięki zastosowaniu zbioru......Page 232 7.9. Iteratory lub wyliczenia — dostęp do danych w sposób niezależny od ich typów......Page 233 7.10. Strukturalizacja danych z wykorzystaniem list połączonych......Page 234 7.11. Odwzorowywanie z wykorzystaniem klas Hashtable oraz HashMap......Page 238 7.12. Zapisywanie łańcuchów znaków w obiektach Properties i Preferences......Page 240 7.13. Sortowanie kolekcji......Page 244 7.14. Unikanie konieczności sortowania danych......Page 248 7.15. Odnajdywanie obiektu w kolekcji......Page 250 7.16. Zamiana kolekcji na tablicę......Page 252 7.17. Tworzenie własnego iteratora......Page 253 7.18. Stos......Page 256 7.19. Struktury wielowymiarowe......Page 259 7.20. Program — porównanie szybkości działania......Page 261 8.0. Wprowadzenie......Page 263 8.1. Wyświetlanie obiektów — formatowanie obiektów przy użyciu metody toString()......Page 266 8.2. Przesłanianie metod equals() oraz hashCode()......Page 267 8.3. Porządki w aplikacji przy użyciu metody addShutdownHook()......Page 273 8.4. Wykorzystanie klas wewnętrznych......Page 274 8.5. Tworzenie metod zwrotnych z wykorzystaniem interfejsów......Page 276 8.6. Polimorfizm i metody abstrakcyjne......Page 279 8.7. Przekazywanie wartości......Page 281 8.8. Wartości wyliczeniowe bezpieczne dla typów......Page 284 8.9. Wymuszanie użycia wzorca Singleton......Page 288 8.10. Zgłaszanie własnych wyjątków......Page 290 8.11. Wstrzykiwanie zależności......Page 291 8.12. Program Plotter......Page 294 9.0. Wprowadzenie......Page 299 9.1. Stosowanie wyrażeń lambda lub domknięć zamiast klas wewnętrznych......Page 301 9.2. Stosowanie predefiniowanych interfejsów lambda zamiast własnych......Page 304 9.3. Upraszczanie przetwarzania z wykorzystaniem interfejsu Stream......Page 306 9.4. Poprawianie przepustowości dzięki wykorzystaniu strumieni i kolekcji równoległych......Page 308 9.5. Tworzenie własnych interfejsów funkcyjnych......Page 309 9.6. Używanie istniejącego kodu w sposób funkcyjny dzięki wykorzystaniu odwołań do metod......Page 311 9.7. Wstawianie istniejącego kodu metod......Page 315 10.0. Wprowadzenie......Page 317 10.1. Odczytywanie informacji ze standardowego strumienia wejściowego......Page 320 10.2. Odczyt z konsoli lub okna terminala; odczyt hasła bez jego wyświetlania......Page 323 10.3. Zapis danych w standardowym strumieniu wyjściowym lub w strumieniu błędów......Page 325 10.4. Wyświetlanie tekstów przy użyciu klasy Formatter i metody printf......Page 327 10.5. Analiza zawartości pliku przy użyciu klasy StringTokenizer......Page 331 10.6. Analiza danych wejściowych przy użyciu klasy Scanner......Page 335 10.7. Analiza danych wejściowych o strukturze gramatycznej......Page 338 10.8. Otwieranie pliku o podanej nazwie......Page 340 10.9. Kopiowanie plików......Page 341 10.11. Zmiana skojarzeń standardowych strumieni......Page 347 10.12. Powielanie strumienia podczas realizacji operacji zapisu......Page 348 10.13. Odczyt i zapis danych zakodowanych w innym zbiorze znaków......Page 351 10.14. Te kłopotliwe znaki końca wiersza......Page 352 10.15. Kod operujący na plikach w sposób zależny od systemu operacyjnego......Page 353 10.16. Odczytywanie „podzielonych” wierszy tekstu......Page 354 10.17. Odczytywanie i zapisywanie danych binarnych......Page 358 10.18. Przejście do określonego miejsca w pliku......Page 359 10.19. Zapisywanie danych w strumieniu z wykorzystaniem języka C......Page 360 10.20. Zapisywanie i odczytywanie obiektów......Page 363 10.21. Unikanie wyjątków ClassCastException spowodowanych nieprawidłowymi wartościami SerialVersionUID......Page 366 10.22. Odczytywanie i zapisywanie danych w archiwach JAR oraz ZIP......Page 368 10.23. Odnajdywanie plików w sposób niezależny od systemu operacyjnego przy użyciu metod getResource() i getResourceAsStream()......Page 371 10.24. Odczytywanie i zapisywanie skompresowanych plików......Page 373 10.25. Poznawanie API do obsługi portów szeregowych i równoległych......Page 374 10.26. Zapisywanie danych użytkownika na dysku......Page 379 10.27. Program — zamiana tekstu do postaci PostScript......Page 382 11.0. Wprowadzenie......Page 387 11.1. Pobieranie informacji o pliku......Page 388 11.2. Tworzenie pliku......Page 390 11.3. Zmiana nazwy pliku......Page 391 11.4. Usuwanie plików......Page 392 11.5. Tworzenie plików tymczasowych......Page 394 11.6. Zmiana atrybutów pliku......Page 395 11.7. Tworzenie listy zawartości katalogu......Page 397 11.8. Pobieranie katalogów głównych......Page 399 11.9. Tworzenie nowych katalogów......Page 400 11.10. Stosowanie klasy Path zamiast File......Page 401 11.11. Stosowanie usługi WatchService do uzyskiwania informacji o zmianach pliku......Page 402 11.12. Program Find......Page 404 12.0. Wprowadzenie......Page 407 12.1. Rysowanie przy użyciu obiektu Graphics......Page 408 12.2. Testowanie komponentów graficznych......Page 409 12.3. Wyświetlanie tekstu......Page 410 12.4. Wyświetlanie wyśrodkowanego tekstu w komponencie......Page 411 12.5. Rysowanie cienia......Page 413 12.6. Wyświetlanie tekstu przy użyciu biblioteki grafiki dwuwymiarowej......Page 415 12.7. Wyświetlanie tekstu przy użyciu czcionki aplikacji......Page 417 12.8. Wyświetlanie obrazu......Page 419 12.9. Odczyt i zapis obrazów przy użyciu pakietu javax.imageio......Page 423 12.10. Odtwarzanie pliku dźwiękowego......Page 424 12.11. Prezentacja ruchomego obrazu......Page 426 12.12. Drukowanie w Javie......Page 430 12.13. Program PlotterAWT......Page 434 12.14. Program Grapher......Page 435 13.0. Wprowadzenie......Page 439 13.1. Nawiązywanie połączenia z serwerem......Page 441 13.2. Odnajdywanie i zwracanie informacji o adresach sieciowych......Page 443 13.3. Obsługa błędów sieciowych......Page 445 13.4. Odczyt i zapis danych tekstowych......Page 446 13.5. Odczyt i zapis danych binarnych......Page 448 13.6. Odczyt i zapis danych serializowanych......Page 450 13.7. Datagramy UDP......Page 452 13.8. Program — klient TFTP wykorzystujący protokół UDP......Page 454 13.9. URI, URL czy może URN?......Page 458 13.10. Klient usługi internetowej REST......Page 459 13.11. Klient usługi internetowej SOAP......Page 461 13.12. Program — klient usługi Telnet......Page 466 13.13. Program — klient pogawędek internetowych......Page 468 13.14. Program — sprawdzanie odnośników HTTP......Page 472 14.0. Wprowadzenie......Page 475 14.1. Wyświetlanie komponentów graficznego interfejsu użytkownika......Page 477 14.2. Uruchamianie graficznego interfejsu użytkownika w wątku przekazywania zdarzeń......Page 478 14.3. Projektowanie układu okna......Page 480 14.4. Karty — nowe spojrzenie na świat......Page 483 14.5. Obsługa czynności — tworzenie działających przycisków......Page 484 14.6. Obsługa czynności z wykorzystaniem anonimowych klas wewnętrznych......Page 486 14.7. Obsługa czynności z wykorzystaniem wyrażeń lambda......Page 488 14.8. Kończenie programu przy użyciu przycisku Zamknij......Page 489 14.9. Okna dialogowe — tego nie można zrobić później......Page 494 14.10. Przechwytywanie i formatowanie wyjątków graficznego interfejsu użytkownika......Page 496 14.11. Wyświetlanie wyników wykonania programu w oknie......Page 499 14.12. Wybieranie wartości przy użyciu komponentu JSpinner......Page 505 14.13. Wybieranie plików przy użyciu klasy JFileChooser......Page 506 14.14. Wybieranie koloru......Page 509 14.15. Formatowanie komponentów przy użyciu kodu HTML......Page 511 14.16. Wyświetlanie okna głównego pośrodku ekranu......Page 512 14.17. Zmiana sposobów prezentacji programów pisanych z wykorzystaniem pakietu Swing......Page 515 14.18. Korzystanie z rozszerzonych możliwości pakietu Swing w systemie Mac OS X......Page 519 14.19. Tworzenie aplikacji z graficznym interfejsem użytkownika przy użyciu pakietu JavaFX......Page 522 14.20. Program — własne narzędzie do wybierania czcionek......Page 524 14.21. Program — własny menedżer układu......Page 528 15.1. Tworzenie przycisku w różnych wersjach językowych......Page 535 15.2. Tworzenie listy dostępnych ustawień lokalnych......Page 538 15.4. Tworzenie metod pomocniczych przydatnych podczas pisania programów wielojęzycznych......Page 539 15.5. Tworzenie okien dialogowych z wykorzystaniem zasobów wielojęzycznych......Page 541 15.6. Tworzenie wiązki zasobów......Page 543 15.7. Usuwanie łańcuchów znaków z kodu......Page 544 15.8. Wykorzystanie konkretnych ustawień lokalnych......Page 545 15.9. Określanie domyślnych ustawień lokalnych......Page 546 15.10. Formatowanie komunikatów przy użyciu klasy MessageFormat......Page 547 15.11. Program MenuIntl......Page 549 15.12. Program BusCard......Page 551 16.0. Wprowadzenie......Page 555 16.1. Tworzenie serwera......Page 556 16.2. Zwracanie odpowiedzi (łańcucha znaków bądź danych binarnych)......Page 558 16.3. Zwracanie informacji o obiektach......Page 562 16.4. Obsługa wielu klientów......Page 563 16.5. Serwer obsługujący protokół HTTP......Page 567 16.6. Zabezpieczanie serwera WWW przy użyciu SSL i JSSE......Page 570 16.7. Rejestracja operacji sieciowych......Page 572 16.8. Rejestracja przez sieć przy użyciu SLF4J......Page 574 16.9. Rejestracja przez sieć przy użyciu log4j......Page 576 16.10. Rejestracja przez sieć przy użyciu pakietu java.util.logging......Page 579 16.11. Znajdowanie interfejsów sieciowych......Page 581 16.12. Program — serwer pogawędek w Javie......Page 582 17.0. Wprowadzenie......Page 587 17.1. Wysyłanie poczty elektronicznej — wersja działająca w przeglądarkach......Page 588 17.2. Wysyłanie poczty elektronicznej — właściwe rozwiązanie......Page 592 17.3. Dodawanie możliwości wysyłania poczty do programu działającego na serwerze......Page 594 17.4. Wysyłanie wiadomości MIME......Page 599 17.5. Tworzenie ustawień poczty elektronicznej......Page 602 17.6. Odczytywanie poczty elektronicznej......Page 603 17.7. Program MailReaderBean......Page 608 17.8. Program MailClient......Page 611 18.0. Wprowadzenie......Page 621 18.1. Łatwy dostęp do bazy danych przy użyciu JPA oraz Hibernate......Page 623 18.2. Konfiguracja i nawiązywanie połączeń JDBC......Page 628 18.3. Nawiązywanie połączenia z bazą danych JDBC......Page 631 18.4. Przesyłanie zapytań JDBC i pobieranie wyników......Page 634 18.5. Wykorzystanie przygotowanych poleceń JDBC......Page 637 18.7. Modyfikacja danych przy użyciu obiektu ResultSet......Page 641 18.8. Zapisywanie wyników w obiektach RowSet......Page 642 18.9. Modyfikacja danych przy użyciu poleceń SQL......Page 644 18.10. Odnajdywanie metadanych JDBC......Page 646 18.11. Program SQLRunner......Page 650 19.0. Wprowadzenie......Page 661 19.1. Bezpośrednie generowanie danych w formacie JSON......Page 663 19.2. Analiza i zapisywanie danych JSON przy użyciu pakietu Jackson......Page 664 19.3. Analiza i zapis danych w formacie JSON przy użyciu pakietu org.json......Page 665 20.0. Wprowadzenie......Page 669 20.1. Konwersja obiektów na dane XML przy użyciu JAXB......Page 672 20.2. Konwersja obiektów na dane XML przy użyciu serializatorów......Page 675 20.3. Przekształcanie danych XML przy użyciu XSLT......Page 676 20.4. Analiza składniowa XML przy użyciu API SAX......Page 679 20.5. Analiza dokumentów XML przy użyciu modelu obiektów dokumentu (DOM)......Page 681 20.6. Odnajdywanie elementów XML przy użyciu XPath......Page 684 20.7. Weryfikacja poprawności struktury z wykorzystaniem DTD......Page 686 20.8. Generowanie własnego kodu XML z wykorzystaniem DOM i obiektów przekształceń XML......Page 689 20.9. Program xml2mif......Page 691 21.0. Wprowadzenie......Page 693 21.1. Tworzenie pakietu......Page 694 21.2. Tworzenie dokumentacji klas przy użyciu programu Javadoc......Page 696 21.3. Więcej niż Javadoc — adnotacje i metadane......Page 700 21.4. Stosowanie programu archiwizującego jar......Page 701 21.5. Uruchamianie programu zapisanego w pliku JAR......Page 703 21.6. Tworzenie klasy w taki sposób, by była komponentem JavaBeans......Page 704 21.7. Umieszczanie komponentów w plikach JAR......Page 708 21.8. Umieszczanie serwletów w plikach JAR......Page 709 21.9. „Zapisz raz, instaluj wszędzie”......Page 710 21.10. „Napisz raz, instaluj na Mac OS X”......Page 711 21.11. Java Web Start......Page 713 21.12. Podpisywanie plików JAR......Page 719 22.0. Wprowadzenie......Page 721 22.1. Uruchamianie kodu w innym wątku......Page 723 22.2. Animacja — wyświetlanie poruszających się obrazów......Page 728 22.3. Zatrzymywanie działania wątku......Page 732 22.4. Spotkania i ograniczenia czasowe......Page 734 22.5. Synchronizacja wątków przy użyciu słowa kluczowego synchronized......Page 735 22.6. Upraszczanie synchronizacji przy użyciu blokad......Page 741 22.7. Komunikacja między wątkami — metody wait() oraz notifyAll()......Page 745 22.8. Upraszczanie programu producent-konsument przy użyciu interfejsu Queue......Page 750 22.9. Optymalizacja działania równoległego przy użyciu Fork/Join......Page 753 22.10. Zapis danych w tle w programach edycyjnych......Page 756 22.11. Wielowątkowy serwer sieciowy......Page 758 22.12. Upraszczanie serwerów z wykorzystaniem klas pakietu java.util.concurrent......Page 765 23.0. Wprowadzenie......Page 769 23.1. Pobieranie deskryptora klasy......Page 770 23.2. Określanie oraz stosowanie metod i pól......Page 771 23.3. Uzyskiwanie dostępu do prywatnych pól i metod za pomocą introspekcji......Page 774 23.4. Dynamiczne ładowanie i instalowanie klas......Page 775 23.5. Tworzenie nowej klasy od podstaw przy użyciu obiektu ClassLoader......Page 778 23.6. Określanie efektywności działania......Page 779 23.7. Wyświetlanie informacji o klasie......Page 784 23.8. Wyświetlanie klas należących do pakietu......Page 785 23.9. Stosowanie i definiowanie adnotacji......Page 787 23.10. Zastosowanie adnotacji do odnajdywania klas pełniących rolę wtyczek......Page 792 23.11. Program CrossRef......Page 794 23.12. Program AppletViewer......Page 796 24.0. Wprowadzenie......Page 803 24.1. Uruchamianie zewnętrznego programu......Page 804 24.2. Wykonywanie programu i przechwytywanie jego wyników......Page 808 24.3. Wywoływanie kodu napisanego w innych językach przy użyciu javax.script......Page 811 24.4. Tworzenie własnego mechanizmu skryptowego......Page 813 24.5. Łączenie języków Java i Perl......Page 817 24.6. Dołączanie kodu rodzimego......Page 820 24.7. Wywoływanie kodu Javy z kodu rodzimego......Page 825 Posłowie......Page 829 Przybywa Java 1.0......Page 831 Nowości wprowadzone w wersji Java 2 (Java SDK 1.2)......Page 832 Nowości wprowadzone w wersji Java 1.4......Page 833 Nowości wprowadzone w wersji Java 5......Page 834 Nowości wprowadzone w wersji Java 6......Page 840 Nowości wprowadzone w wersji Java 7......Page 841 Nowości wprowadzone w wersji Java 8......Page 844 Spójrzmy poza błękitny horyzont…......Page 845 Skorowidz......Page 849 Kolofon......Page 871

Similar books