156772
Książka
W koszyku
Java : efektywne programowanie / Joshua Bloch ; przekład: Rafał Jońca. - Wydanie III. - Gliwice : Helion, 2022. - 408 stron ; 24 cm.
Tworzenie i usuwanie obiektów Temat 1. Tworzenie statycznych metod fabrycznych 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 lub typu enum Temat 4. Wykorzystanie konstruktora prywatnego w celu uniemożliwienia utworzenia obiektu Temat 5. Stosuj wstrzykiwanie zależności zamiast odwoływania się do zasobów na sztywno Temat 6. Unikanie powielania obiektów Temat 7. Usuwanie niepotrzebnych referencji do obiektów Temat 8. Unikanie finalizatorów i oczyszczaczy Temat 9. Preferuj konstrukcję try z zasobami zamiast try-finally Rozdział 3. Metody wspólne dla wszystkich obiektów Temat 10. Zachowanie założeń w trakcie przedefiniowywania metody equals Temat 11. Przedefiniowywanie metody hashCode wraz z equals Temat 12. Przedefiniowywanie metody toString Temat 13. Rozsądne przedefiniowywanie metody clone Temat 14. Implementacja interfejsu Comparable Rozdział 4. Klasy i interfejsy Temat 15. Ograniczanie dostępności klas i ich składników Temat 16. Stosowanie metod akcesorów zamiast pól publicznych w klasach publicznych Temat 17. Zapewnianie niezmienności obiektu Temat 18. Zastępowanie dziedziczenia kompozycją Temat 19. Projektowanie i dokumentowanie klas przeznaczonych do dziedziczenia Temat 20. Stosowanie interfejsów zamiast klas abstrakcyjnych Temat 21. Projektowanie interfejsów na długie lata Temat 22. Wykorzystanie interfejsów jedynie do definiowania typów Temat 23. Zastępowanie oznaczania klas hierarchią Temat 24. Zalety stosowania statycznych klas składowych Temat 25. Ograniczenie pliku źródłowego do pojedynczej klasy głównego poziomu Temat 26. Nie korzystaj z typów surowych Temat 27. Eliminowanie ostrzeżeń o braku kontroli Temat 28. Korzystanie z list zamiast tablic Temat 29. Stosowanie typów ogólnych Temat 30. Stosowanie metod ogólnych Temat 31. Zastosowanie związanych szablonów do zwiększania elastyczności API Temat 32. Ostrożne łączenie typów ogólnych i parametrów varargs Temat 33. Wykorzystanie heterogenicznych kontenerów bezpiecznych dla typów Rozdział 6. Typy wyliczeniowe i adnotacje Temat 34. Użycie typów wyliczeniowych zamiast stałych int Temat 35. Użycie pól instancyjnych zamiast kolejności Temat 36. Użycie EnumSet zamiast pól bitowych Temat 37. Użycie EnumMap zamiast indeksowania kolejnością Temat 38. Emulowanie rozszerzalnych typów wyliczeniowych za pomocą interfejsów Temat 39. Korzystanie z adnotacji zamiast wzorców nazw Temat 40. Spójne użycie adnotacji Override Temat 41. Użycie interfejsów znacznikowych do definiowania typów Rozdział 7. Lambdy i strumienie Temat 42. Stosuj lambdy zamiast klas anonimowych Temat 43. Wybieraj referencje do metod zamiast lambd Temat 44. Korzystaj ze standardowych interfejsów funkcyjnych Temat 45. Rozważnie korzystaj ze strumieni Temat 46. Stosuj w strumieniach funkcje bez efektów ubocznych Temat 47. Zwracaj kolekcje zamiast strumieni Temat 48. Ostrożnie korzystaj ze strumieni zrównoleglonych Rozdział 8. Metody Temat 49. Sprawdzanie poprawności parametrów Temat 50. Defensywne kopiowanie Temat 51. Projektowanie sygnatur metod Temat 52. Rozsądne korzystanie z przeciążania Temat 53. Rozsądne korzystanie z metod varargs Temat 54. Zwracanie pustych tablic lub kolekcji zamiast wartości null Temat 55. Rozsądne zwracanie obiektów opcjonalnych Temat 56. Tworzenie komentarzy dokumentujących dla udostępnianych elementów API Rozdział 9. Programowanie Temat 57. Ograniczanie zasięgu zmiennych lokalnych Temat 58. Stosowanie pętli for-each zamiast tradycyjnych pętli for Temat 59. Poznanie i wykorzystywanie bibliotek Temat 60. Unikanie typów float i double, gdy potrzebne są dokładne wyniki Temat 61. Stosowanie typów prostych zamiast opakowanych typów prostych Temat 62. Unikanie typu String, gdy istnieją bardziej odpowiednie typy Temat 63. Problemy z wydajnością przy łączeniu ciągów znaków Temat 64. Odwoływanie się do obiektów poprzez interfejsy Temat 65. Stosowanie interfejsów zamiast refleksyjności Temat 66. Rozważne wykorzystywanie metod natywnych Temat 67. Unikanie przesadnej optymalizacji Temat 68. Wykorzystanie ogólnie przyjętych konwencji nazewnictwa Rozdział 10. Wyjątki Temat 69. Wykorzystanie wyjątków w sytuacjach nadzwyczajnych Temat 70. Stosowanie wyjątków przechwytywanych i wyjątków czasu wykonania Temat 71. Unikanie niepotrzebnych wyjątków przechwytywanych Temat 72. Wykorzystanie wyjątków standardowych Temat 73. Zgłaszanie wyjątków właściwych dla abstrakcji Temat 74. Dokumentowanie wyjątków zgłaszanych przez metodę Temat 75. Udostępnianie danych o błędzie Temat 76. Zachowanie atomowości w przypadku błędu Temat 77. Nie ignoruj wyjątków Rozdział 11. Współbieżność Temat 78. Synchronizacja dostępu do wspólnych modyfikowalnych danych Temat 79. Unikanie nadmiarowej synchronizacji Temat 80. Stosowanie wykonawców, zadań i strumieni zamiast wątków Temat 81. Stosowanie narzędzi współbieżności zamiast wait i notify Temat 82. Dokumentowanie bezpieczeństwa dla wątków Temat 83. Rozsądne korzystanie z późnej inicjalizacji Temat 84. Nie polegaj na harmonogramie wątków Rozdział 12. Serializacja Temat 85. Stosuj rozwiązania alternatywne wobec serializacji Javy Temat 86. Rozsądne implementowanie interfejsu Serializable Temat 87. Wykorzystanie własnej postaci serializowanej Temat 88. Defensywne tworzenie metody readObject Temat 89. Stosowanie typów wyliczeniowych zamiast readResolve do kontroli obiektów Temat 90. Użycie pośrednika serializacji zamiast serializowanych obiektów
Sygnatura czytelni BWEAiI: XII N 162
Pliki multimedialne:
Status dostępności:
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 153021 (1 egz.)
Strefa uwag:
Tytuł oryginału: Effective Java (3rd edition), 2018
Uwaga dotycząca bibliografii
Indeks.
Pozycja została dodana do koszyka. Jeśli nie wiesz, do czego służy koszyk, kliknij tutaj, aby poznać szczegóły.
Nie pokazuj tego więcej

Deklaracja dostępności