Java Potrzaski.pdf
(
286 KB
)
Pobierz
C:\Andrzej\PDF\ABC nagrywania p³yt CD\1 strona.cdr
IDZ DO
PRZYK£ADOW
Y ROZDZIA£
Java. Potrzaski
SPIS TRECI
KATALOG KSI¥¯EK
Autorzy: Michael C. Daconta, Eric Monk,
J Paul Keller, Keith Bohnenberger
T³umaczenie: Jaromir Senczyk
ISBN: 83-7361-121-5
Tytu³ orygina³
u:
Java Pitfalls
Format: B5, stron: 310
Przyk³ady na ftp: 68 kB
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Choæ Java to jêzyk gwarantuj¹cy efektywn¹ pracê, to jednak kryje w sobie wiele
pu³apek, które mog¹ zniweczyæ jej efekty. Ksi¹¿ka ta ma za zadanie oszczêdziæ Twój
czas i zapobiec frustracji przeprowadzaj¹c Ciê bezpiecznie przez skomplikowane
zagadnienia. Zespó³ ekspertów od jêzyka Java pod wodz¹ guru programowania
w osobie Michaela Daconta proponuje Ci zestaw sprawdzonych rozwi¹zañ 50 trudnych
problemów pojawiaj¹cych siê w praktyce ka¿dego programisty. Rozwi¹zania te pozwol¹
Ci unikn¹æ problemów wynikaj¹cych z niedostatków jêzyka Java oraz jego interfejsów
programowych, w tym pakietów java.util, java.io, java.awt i javax.swing. Autorzy dziel¹
siê tak¿e z Czytelnikiem swoimi sposobami na poprawê wydajnoci aplikacji pisanych
w Javie.
Oto niektóre z omawianych zagadnieñ:
• Sk³adnia jêzyka: zastosowanie metody equals() zamiast operatora ==
do porównywania obiektów klasy String
• Funkcjonalnoæ wbudowana w jêzyk: rozdzia³ metod a mechanizm refleksji,
interfejsy i klasy anonimowe
• U¿yteczne klasy i kolekcje: wybór klasy PropertyFile i ResourceBundle
• Wejcie i wyjcie, w tym subtelnoci zwi¹zane z przesy³aniem serializowanych
obiektów za pomoc¹ gniazd sieciowych
• Graficzny interfejs u¿ytkownika: sposoby unikniêcia typowej pu³apki polegaj¹cej
na zastosowaniu metody repaint() zamiast metody validate() w celu uzyskania
nowego uk³adu komponentów
• Graficzny interfejs u¿ytkownika -- sterowanie: m.in. bardziej funkcjonalna kontrola
danych wprowadzanych przez u¿ytkownika
• Wydajnoæ: m.in. zastosowanie odroczonego ³adowania, tak by zwiêkszyæ
szybkoæ uruchamiania programów
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
Wstp ............................................................................................... 9
Rozdział 1. Składnia jzyka................................................................................ 13
Zagadnienie 1. Przesłanianie metod statycznych........................................................14
Zagadnienie 2. Zastosowanie metody equals() i operatora ==
dla obiektów klasy String ......................................................................................16
Zagadnienie 3. Kontrola zgodno'ci typów w j)zyku Java ...........................................19
Konwersja typów..............................................................................................20
Rozszerzanie ....................................................................................................21
Zaw)/anie........................................................................................................22
Niejawne konwersje typów................................................................................22
Zagadnienie 4. Czy to jest konstruktor? ....................................................................23
Zagadnienie 5. Brak dost)pu do przesłoni)tej metody ................................................25
Zagadnienie 6. Pułapka ukrytego pola.......................................................................27
Rodzaje zmiennych w j)zyku Java .....................................................................29
Zakres deklaracji zmiennej.................................................................................29
Które zmienne mog6 by7 ukrywane? ..................................................................30
Ukrywanie zmiennych instancji i zmiennych klas.................................................30
Dost)p do ukrytych pól......................................................................................32
Ró/nice pomi)dzy ukrywaniem pól i przesłanianiem metod..................................33
Zagadnienie 7. Referencje wyprzedzaj6ce.................................................................34
Zagadnienie 8. Konstruktory i projektowanie klas......................................................35
Zagadnienie 9. Przekazywanie typów prostych przez referencj)..................................42
Zagadnienie 10. Wyra/enia i operatory logiczne........................................................45
Rozdział 2. Funkcjonalno wbudowana w jzyk Java ......................................... 47
Zagadnienie 11. Odzyskiwanie pami)ci za pomoc6 obiektów SoftReference................48
Odzyskiwanie pami)ci.......................................................................................48
Klasa SoftReference..........................................................................................50
Kolejki referencji ..............................................................................................55
Zagadnienie 12. Zakleszczenie na skutek wywołania metody synchronizowanej
przez metod) synchronizowan6 .............................................................................57
W6tki, monitory i słowo kluczowe synchronized..................................................57
Przykładowy scenariusz zakleszczenia................................................................61
Zagadnienie 13. Klonowanie obiektów .....................................................................65
Zagadnienie 14. Przesłanianie metody equals ............................................................71
Zastosowanie obiektów klasy StringBuffer jako kluczy kodowania mieszaj6cego ...73
Zagadnienie 15. Unikajmy konstruktorów w implementacji metody clone().................74
6
Java. Potrzaski
Zagadnienie 16. Rozdział metod a mechanizm refleksji, interfejsy
i klasy anonimowe................................................................................................79
Zagadnienie 17. Obsługa wyj6tków i bł6d OutOfMemoryError...................................88
Składnia wyj6tków............................................................................................89
Hierarchia wyj6tków .........................................................................................89
Obsługa wyj6tków ............................................................................................90
Bł6d braku pami)ci ...........................................................................................90
Rozdział 3. U%yteczne klasy i kolekcje ............................................................... 93
Zagadnienie 18. Uporz6dkowane klucze wła'ciwo'ci? ...............................................94
Zagadnienie 19. Obsługa kolekcji o znacznych rozmiarach
za pomoc6 mechanizmów buforowania i trwało'ci...................................................97
Zagadnienie 20. Plik wła'ciwo'ci czy zestaw zasobów?...........................................109
Zagadnienie 21. Pułapki klasy Properties ................................................................112
Zagadnienie 22. Klasa Vector i nowe kolekcje.........................................................117
Rozdział 4. Wejcie i wyjcie ........................................................................... 121
Zagadnienie 23. Serializacja...................................................................................122
Jak działa serializacja?.....................................................................................123
Interfejs Externalizable....................................................................................124
Zagadnienie 24. Unicode, UTF i strumienie.............................................................125
Unicode .........................................................................................................126
UTF ..............................................................................................................126
Strumienie......................................................................................................128
Konfigurowanie kodowania .............................................................................131
Zagadnienie 25. Przesyłanie serializowanych obiektów
za pomoc6 gniazd sieciowych..............................................................................131
Zagadnienie 26. Try, catch
finally? ....................................................................135
Zagadnienie 27. Opró/nianie zasobów zwi6zanych z obrazami .................................138
Rozdział 5. Graficzny interfejs u%ytkownika — prezentacja................................ 143
Zagadnienie 28. Informowanie o post)pach.............................................................144
Kursor zaj)to'ci..............................................................................................145
Monitor post)pu..............................................................................................147
Zagadnienie 29. Zastosowanie metody repaint() zamiast metody validate()
do aktualizacji układu komponentów....................................................................149
Zagadnienie 30. Uporz6dkowanie nakładaj6cych si) komponentów...........................153
Mened/ery układu...........................................................................................154
JLayeredPane.................................................................................................158
Zagadnienie 31. Zagadka metod validate(), revalidate() i invalidate().........................160
Zagadnienie 32. Pionowy układ komponentów........................................................164
Zagadnienie 33. Wła'ciwe sposoby u/ycia mened/era GridBagLayout......................172
Zagadnienie 34. Zapobieganie migotaniu obrazu .....................................................179
Rysowanie w AWT.........................................................................................180
Rysowanie i Swing..........................................................................................183
Zagadnienie 35. Komponenty z zagnie/d/onymi etykietami HTML..........................184
Rozdział 6. Graficzny interfejs u%ytkownika — sterowanie ................................ 189
Zagadnienie 36. Kontrola danych wprowadzanych przez u/ytkownika ......................190
Komponenty tworzone na miar).......................................................................191
Filtrowanie.....................................................................................................191
Konsumowanie zdarzeJ...................................................................................192
Kontrola po wprowadzeniu danych...................................................................194
Problemy projektowania..................................................................................194
…
Spis treci
7
Asynchroniczna kontrola poprawno'ci..............................................................195
Adapter kontroli danych ..................................................................................196
Techniki kontroli poprawno'ci danych..............................................................198
Kontrola poprawno'ci danych z wykorzystaniem wyj6tków................................198
ŁaJcuchy kontroli poprawno'ci danych ............................................................200
Uwagi koJcowe..............................................................................................201
Zagadnienie 37. Uaktywnianie komponentów interfejsu u/ytkownika
w zale/no'ci od stanu aplikacji ............................................................................201
Pierwsze rozwi6zanie ......................................................................................202
Rozwi6zanie siłowe.........................................................................................202
Rozwi6zanie przez abstrakcj) — klasa StateMonitor..........................................203
ListViewer .....................................................................................................205
Adaptacyjna deaktywacja komponentów...........................................................208
Zagadnienie 38. Wielow6tkowa obsługa zdarzeJ .....................................................208
Skuteczna implementacja obsługi przycisku Cancel
z wykorzystaniem w6tków.............................................................................210
Skuteczna implementacja obsługi przycisku Cancel
wykorzystuj6ca klas) SwingWorker ...............................................................212
Zagadnienie 39. Wzorzec „model widok kontroler” i komponent JTree .....................214
Zagadnienie 40. Przekazywanie danych innych ni/ tekst ..........................................217
Pakiet java.awt.datatransfer .............................................................................218
Trzy scenariusze przekazywania danych ...........................................................219
Przykład przekazywania danych w obr)bie jednej maszyny wirtualnej.................219
Okre'lanie sposobu przekazywania danych .......................................................223
Przekazywanie danych poza maszyn) wirtualn6.................................................224
Zagadnienie 41. KeyListener, który nie słucha?.......................................................238
Zagadnienie 42. Drukowanie tekstu, dokumentów HTML i obrazów
za pomoc6 komponentu JEditorPane....................................................................241
Rozdział 7. Efektywno.................................................................................. 251
Zagadnienie 43. Odroczone ładowanie sposobem na popraw) efektywno'ci...............252
Zagadnienie 44. Zastosowania puli obiektów...........................................................254
Odzyskiwanie obiektów...................................................................................255
Porównanie puli obiektów i buforowania...........................................................255
Implementacja ................................................................................................256
Zalety ............................................................................................................257
Wady.............................................................................................................258
Kłopoty..........................................................................................................258
Zagadnienie 45. Efektywno'7 tablic i klasy Vector...................................................260
Dlaczego klasa Vector jest wolniejsza od zwykłych tablic?.................................262
Kiedy u/ywa7 klasy Vector? ............................................................................263
Klasa ArrayList...............................................................................................264
Zagadnienie 46. Zagadnienie dynamicznego wzrostu tablic ......................................265
Zagadnienie 47. Konkatenacja łaJcuchów znakowych w p)tli
— porównanie klas String i StringBuffer..............................................................270
Rozdział 8. Rozmaitoci................................................................................... 273
Zagadnienie 48. Czy istnieje lepszy sposób uruchamiania? .......................................273
Zagadnienie 49. Hermetyzacja wywołaJ JNI za pomoc6 interfejsów .........................275
Koncepcja......................................................................................................276
Przykład interfejsu ..........................................................................................277
Implementacja w j)zyku Java...........................................................................279
Implementacja w kodzie macierzystym .............................................................281
Kod specyficzny dla platformy Windows ..........................................................285
8
Java. Potrzaski
Zagadnienie 50. Asercje ........................................................................................289
Asercje w j)zyku Java.....................................................................................290
Stosowanie asercji...........................................................................................290
Jak nie nale/y stosowa7 asercji.........................................................................290
Przykładowa implementacja.............................................................................291
Skorowidz .......................................................................................... 295
Plik z chomika:
janowiec
Inne pliki z tego folderu:
Asembler dla procesorow Intel Vademecum profesjonalisty.pdf
(400 KB)
Asembler cwiczenia praktyczne.pdf
(358 KB)
Architektura systemow zarzadzania przedsiebiorstwem Wzorce projektowe.pdf
(829 KB)
Architektura oprogramowania Metody oceny oraz analiza przypadkow.pdf
(429 KB)
Aplikacje w Visual C++ 2005 Przyklady.pdf
(296 KB)
Inne foldery tego chomika:
PHP
Zgłoś jeśli
naruszono regulamin