Java. Efektywne programowanie. Wydanie II - Helion
Tytuł oryginału: Effective Java (2nd Edition)
ISBN: 978-83-283-3311-6
stron: 352, Format: 158x235, okładka: miękka
Data wydania: 2009-03-24
Księgarnia: Helion
Cena książki: 67,00 zł
Poznaj specyfikę języka Java i zostań mistrzem programowania
- Jak korzystać z bibliotek języka Java?
- Jak pisać funkcjonalny i klarowny kod?
- Jak stworzyć profesjonalny i efektowny program?
Język Java jest językiem obiektowym z dziedziczeniem jednobazowym. Wewnątrz każdej metody korzysta on ze zorientowanego na instrukcje stylu kodowania. Aby dobrze poznać jakikolwiek język, należy nauczyć się posługiwać jego regułami, zasadami i składnią -- podobnie jest z językiem programowania. Jeśli chcesz zyskać możliwość efektywnego programowania w języku Java, powinieneś poznać struktury danych, operacje i udogodnienia, oferowane przez biblioteki standardowe, a także często stosowane i efektywne sposoby tworzenia kodu. Całą potrzebną Ci wiedzę znajdziesz właśnie w tym podręczniku.
W książce "Java. Efektywne programowanie" w sposób zrozumiaÅ‚y i klarowny przedstawiono zasady opisujÄ…ce mechanizmy używane w najlepszych technikach programowania. Ten podrÄ™cznik podpowie Ci, jak najbardziej racjonalnie korzystać z jÄ™zyka Java oraz jego podstawowych bibliotek. Dowiesz siÄ™, jak stosować wyjÄ…tki przechwytywalne i wyjÄ…tki czasu wykonania, poznasz także zalety stosowania statycznych klas skÅ‚adowych. Opanujesz metody sprawdzania poprawnoÅ›ci parametrów i projektowania sygnatur oraz wszelkie instrukcje, które pozwolÄ… Ci na wydajne i profesjonalne programowanie.
- Tworzenie i usuwanie obiektów
- Klasy i interfejsy
- Zapewnianie niezmienności obiektu
- Projektowanie i dokumentowanie klas przeznaczonych do dziedziczenia
- Zalety stosowania statycznych klas składowych
- Typy ogólne
- Typy wyliczeniowe i adnotacje
- Metody
- Programowanie
- Wykorzystanie ogólnie przyjÄ™tych konwencji nazewnictwa
- WyjÄ…tki
- WspóÅ‚bieżność i serializacja
- Dokumentowanie bezpieczeÅ„stwa dla wÄ…tków
Nie wystarczy samo poznanie języka Java. Trzeba wiedzieć, jak z niego efektywnie korzystać!
Osoby które kupowały "Java. Efektywne programowanie. Wydanie II", 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. Efektywne programowanie. Wydanie II -- spis treści
- Opinie o pierwszym wydaniu
- Słowo wstępne
- Przedmowa
- Przedmowa do drugiego wydania
- Przedmowa do pierwszego wydania
- Podziękowania
- Podziękowania do drugiego wydania
- Podziękowania do pierwszego wydania
- 1 Wprowadzenie
- 2 Tworzenie i usuwanie obiektów
- Temat 1. Tworzenie statycznych metod factory zamiast konstruktorów
- Temat 2. Zastosowanie budowniczego do obsÅ‚ugi wielu parametrów konstruktora
- Temat 3. Wymuszanie właściwości singleton za pomocą prywatnego konstruktora
- Temat 4. Wykorzystanie konstruktora prywatnego w celu uniemożliwienia utworzenia obiektu
- Temat 5. Unikanie powielania obiektów
- Temat 6. Usuwanie niepotrzebnych referencji do obiektów
- Temat 7. Unikanie finalizatorów
- 3 Metody wspólne dla wszystkich obiektów
- Temat 8. Zachowanie założeń w trakcie przedefiniowywania metody equals
- Temat 9. Przedefiniowywanie metody hashCode wraz z equals
- Temat 10. Przedefiniowywanie metody toString
- Temat 11. RozsÄ…dne przedefiniowywanie metody clone
- Temat 12. Implementacja interfejsu Comparable
- 4 Klasy i interfejsy
- Temat 13. Ograniczanie dostÄ™pnoÅ›ci klas i ich skÅ‚adników
- Temat 14. Stosowanie metod akcesorów zamiast pól publicznych w klasach publicznych
- Temat 15. Zapewnianie niezmienności obiektu
- Temat 16. Zastępowanie dziedziczenia kompozycją
- Temat 17. Projektowanie i dokumentowanie klas przeznaczonych do dziedziczenia
- Temat 18. Stosowanie interfejsów zamiast klas abstrakcyjnych
- Temat 19. Wykorzystanie interfejsów jedynie do definiowania typów
- Temat 20. Zastępowanie oznaczania klas hierarchią
- Temat 21. Zastosowanie obiektów funkcyjnych do reprezentowania strategii
- Temat 22. Zalety stosowania statycznych klas składowych
- 5 Typy ogólne
- Temat 23. Nie korzystaj z typów surowych w nowym kodzie
- Temat 24. Eliminowanie ostrzeżeń o braku kontroli
- Temat 25. Korzystanie z list zamiast tablic
- Temat 26. Stosowanie typów ogólnych
- Temat 27. Stosowanie metod ogólnych
- Temat 28. Zastosowanie zwiÄ…zanych szablonów do zwiÄ™kszania elastycznoÅ›ci API
- Temat 29. Wykorzystanie heterogenicznych kontenerów bezpiecznych dla typów
- 6 Typy wyliczeniowe i adnotacje
- Temat 30. Użycie typów wyliczeniowych zamiast staÅ‚ych int
- Temat 31. Użycie pól instancyjnych zamiast kolejnoÅ›ci
- Temat 32. Użycie EnumSet zamiast pól bitowych
- Temat 33. Użycie EnumMap zamiast indeksowania kolejnością
- Temat 34. Emulowanie rozszerzalnych typów wyliczeniowych za pomocÄ… interfejsów
- Temat 35. Korzystanie z adnotacji zamiast wzorców nazw
- Temat 36. Spójne użycie adnotacji Override
- Temat 37. Użycie interfejsów znacznikowych do definiowania typów
- 7 Metody
- Temat 38. Sprawdzanie poprawnoÅ›ci parametrów
- Temat 39. Defensywne kopiowanie
- Temat 40. Projektowanie sygnatur metod
- Temat 41. Rozsądne korzystanie z przeciążania
- Temat 42. RozsÄ…dne korzystanie z metod varargs
- Temat 43. Zwracanie pustych tablic lub kolekcji zamiast wartości null
- Temat 44. Tworzenie komentarzy dokumentujÄ…cych dla wszystkich udostÄ™pnianych elementów API
- 8 Programowanie
- Temat 45. Ograniczanie zasięgu zmiennych lokalnych
- Temat 46. Stosowanie pętli for-each zamiast tradycyjnych pętli for
- Temat 47. Poznanie i wykorzystywanie bibliotek
- Temat 48. Unikanie typów float i double, gdy potrzebne sÄ… dokÅ‚adne wyniki
- Temat 49. Stosowanie typów prostych zamiast opakowanych typów prostych
- Temat 50. Unikanie typu String, gdy istniejÄ… bardziej odpowiednie typy
- Temat 51. Problemy z wydajnoÅ›ciÄ… przy Å‚Ä…czeniu ciÄ…gów znaków
- Temat 52. OdwoÅ‚ywanie siÄ™ do obiektów poprzez interfejsy
- Temat 53. Stosowanie interfejsów zamiast refleksyjnoÅ›ci
- Temat 54. Rozważne wykorzystywanie metod natywnych
- Temat 55. Unikanie optymalizacji
- Temat 56. Wykorzystanie ogólnie przyjÄ™tych konwencji nazewnictwa
- 9 WyjÄ…tki
- Temat 57. Wykorzystanie wyjÄ…tków w sytuacjach nadzwyczajnych
- Temat 58. Stosowanie wyjÄ…tków przechwytywanych i wyjÄ…tków czasu wykonania
- Temat 59. Unikanie niepotrzebnych wyjÄ…tków przechwytywanych
- Temat 60. Wykorzystanie wyjÄ…tków standardowych
- Temat 61. ZgÅ‚aszanie wyjÄ…tków wÅ‚aÅ›ciwych dla abstrakcji
- Temat 62. Dokumentowanie wyjÄ…tków zgÅ‚aszanych przez metodÄ™
- Temat 63. Udostępnianie danych o błędzie
- Temat 64. Zachowanie atomowości w przypadku błędu
- Temat 65. Nie ignoruj wyjÄ…tków
- 10 WspóÅ‚bieżność
- Temat 66. Synchronizacja dostÄ™pu do wspólnych modyfikowalnych danych
- Temat 67. Unikanie nadmiarowej synchronizacji
- Temat 68. Stosowanie wykonawców i zadaÅ„ zamiast wÄ…tków
- Temat 69. Stosowanie narzÄ™dzi wspóÅ‚bieżnoÅ›ci zamiast wait i notify
- Temat 70. Dokumentowanie bezpieczeÅ„stwa dla wÄ…tków
- Temat 71. RozsÄ…dne korzystanie z późnej inicjalizacji
- Temat 72. Nie polegaj na harmonogramie wÄ…tków
- Temat 73. Unikanie grup wÄ…tków
- 11 Serializacja
- Temat 74. RozsÄ…dne implementowanie interfejsu Serializable
- Temat 75. Wykorzystanie własnej postaci serializowanej
- Temat 76. Defensywne tworzenie metody readObject
- Temat 77. Stosowanie typów wyliczeniowych zamiast readResolve do kontroli obiektów
- Temat 78. Użycie poÅ›rednika serializacji zamiast serializowanych obiektów
- A Tematy odpowiadajÄ…ce pierwszemu wydaniu
- B Zasoby