-
Biznes i ekonomia
- Bitcoin
- Bizneswoman
- Coaching
- Controlling
- E-biznes
- Ekonomia
- Finanse
- Giełda i inwestycje
- Kompetencje osobiste
- Komputer w biurze
- Komunikacja i negocjacje
- Mała firma
- Marketing
- Motywacja
- Multimedialne szkolenia
- Nieruchomości
- Perswazja i NLP
- Podatki
- Polityka społeczna
- Poradniki
- Prezentacje
- Przywództwo
- Public Relation
- Raporty, analizy
- Sekret
- Social Media
- Sprzedaż
- Start-up
- Twoja kariera
- Zarządzanie
- Zarządzanie projektami
- Zasoby ludzkie (HR)
-
Dla dzieci
-
Dla młodzieży
-
Edukacja
-
Encyklopedie, słowniki
-
E-prasa
-
Historia
-
Informatyka
- Aplikacje biurowe
- Aplikacje biznesowe
- Bazy danych
- Bioinformatyka
- Biznes IT
- CAD/CAM
- Digital Lifestyle
- DTP
- Elektronika
- Fotografia cyfrowa
- Grafika komputerowa
- Gry
- Hacking
- Hardware
- IT w ekonomii
- Pakiety naukowe
- Podręczniki szkolne
- Podstawy komputera
- Programowanie
- Programowanie mobilne
- Serwery internetowe
- Sieci komputerowe
- Start-up
- Systemy operacyjne
- Sztuczna inteligencja
- Technologia dla dzieci
- Webmasterstwo
-
Inne
-
Języki obce
-
Kultura i sztuka
-
Lektury szkolne
-
Literatura
- Antologie
- Ballada
- Dla dorosłych
- Dramat
- Dzienniki, pamiętniki, listy
- Epos, epopeja
- Esej
- Fantastyka i science-fiction
- Felietony
- Fikcja
- Humor, satyra
- Inne
- Klasyczna
- Kryminał
- Literatura faktu
- Literatura piękna
- Mity i legendy
- Nobliści
- Nowele
- Obyczajowa
- Okultyzm i magia
- Opowiadania
- Pamiętniki
- Podróże
- Poemat
- Poezja
- Polityka
- Popularnonaukowa
- Powieść
- Powieść historyczna
- Proza
- Przygodowa
- Publicystyka
- Reportaż
- Romans i literatura obyczajowa
- Sensacja
- Thriller, Horror
- Wywiady i wspomnienia
-
Nauki przyrodnicze
-
Nauki społeczne
-
Podręczniki szkolne
-
Popularnonaukowe i akademickie
- Archeologia
- Bibliotekoznawstwo
- Filmoznawstwo
- Filologia
- Filologia polska
- Filozofia
- Finanse i bankowość
- Geografia
- Gospodarka
- Handel. Gospodarka światowa
- Historia i archeologia
- Historia sztuki i architektury
- Kulturoznawstwo
- Lingwistyka
- Literaturoznawstwo
- Logistyka
- Matematyka
- Medycyna
- Nauki humanistyczne
- Pedagogika
- Pomoce naukowe
- Popularnonaukowa
- Pozostałe
- Psychologia
- Socjologia
- Teatrologia
- Teologia
- Teorie i nauki ekonomiczne
- Transport i spedycja
- Wychowanie fizyczne
- Zarządzanie i marketing
-
Poradniki
-
Poradniki do gier
-
Poradniki zawodowe i specjalistyczne
-
Prawo
- BHP
- Historia
- Kodeks drogowy. Prawo jazdy
- Nauki prawne
- Ochrona zdrowia
- Ogólne, kompendium wiedzy
- Podręczniki akademickie
- Pozostałe
- Prawo budowlane i lokalowe
- Prawo cywilne
- Prawo finansowe
- Prawo gospodarcze
- Prawo gospodarcze i handlowe
- Prawo karne
- Prawo karne. Przestępstwa karne. Kryminologia
- Prawo międzynarodowe
- Prawo międzynarodowe i zagraniczne
- Prawo ochrony zdrowia
- Prawo oświatowe
- Prawo podatkowe
- Prawo pracy i ubezpieczeń społecznych
- Prawo publiczne, konstytucyjne i administracyjne
- Prawo rodzinne i opiekuńcze
- Prawo rolne
- Prawo socjalne, prawo pracy
- Prawo Unii Europejskiej
- Przemysł
- Rolne i ochrona środowiska
- Słowniki i encyklopedie
- Zamówienia publiczne
- Zarządzanie
-
Przewodniki i podróże
- Afryka
- Albumy
- Ameryka Południowa
- Ameryka Środkowa i Północna
- Australia, Nowa Zelandia, Oceania
- Austria
- Azja
- Bałkany
- Bliski Wschód
- Bułgaria
- Chiny
- Chorwacja
- Czechy
- Egipt
- Europa
- Francja
- Góry
- Grecja
- Hiszpania
- Holandia
- Islandia
- Litwa
- Mapy, Plany miast, Atlasy
- Miniprzewodniki
- Niemcy
- Podróże aktywne
- Polska
- Portugalia
- Pozostałe
- Rosja
- Rumunia
- Słowacja
- Słowenia
- Szwecja
- Świat
- Turcja
- Ukraina
- Węgry
- Wielka Brytania
- Włochy
-
Psychologia
- Filozofie życiowe
- Komunikacja międzyludzka
- Mindfulness
- Ogólne
- Perswazja i NLP
- Psychologia akademicka
- Psychologia duszy i umysłu
- Psychologia pracy
- Relacje i związki
- Rodzicielstwo i psychologia dziecka
- Rozwiązywanie problemów
- Rozwój intelektualny
- Sekret
- Seksualność
- Uwodzenie
- Wygląd i wizerunek
- Życiowe filozofie
-
Religia
-
Sport, fitness, diety
-
Technika i mechanika
-
Biznes i ekonomia
- Bitcoin
- Bizneswoman
- Coaching
- E-biznes
- Ekonomia
- Finanse
- Giełda i inwestycje
- Kompetencje osobiste
- Komunikacja i negocjacje
- Mała firma
- Marketing
- Motywacja
- Nieruchomości
- Perswazja i NLP
- Poradniki
- Prezentacje
- Przywództwo
- Public Relation
- Sekret
- Social Media
- Sprzedaż
- Start-up
- Twoja kariera
- Zarządzanie
- Zarządzanie projektami
- Zasoby ludzkie (HR)
-
Dla dzieci
-
Dla młodzieży
-
Edukacja
-
Encyklopedie, słowniki
-
Historia
-
Informatyka
-
Inne
-
Języki obce
-
Kultura i sztuka
-
Lektury szkolne
-
Literatura
- Antologie
- Ballada
- Dla dorosłych
- Dramat
- Dzienniki, pamiętniki, listy
- Epos, epopeja
- Esej
- Fantastyka i science-fiction
- Felietony
- Fikcja
- Humor, satyra
- Inne
- Klasyczna
- Kryminał
- Literatura faktu
- Literatura piękna
- Mity i legendy
- Nobliści
- Nowele
- Obyczajowa
- Opowiadania
- Pamiętniki
- Podróże
- Poezja
- Polityka
- Popularnonaukowa
- Powieść
- Powieść historyczna
- Proza
- Przygodowa
- Publicystyka
- Reportaż
- Romans i literatura obyczajowa
- Sensacja
- Thriller, Horror
- Wywiady i wspomnienia
-
Nauki przyrodnicze
-
Nauki społeczne
-
Popularnonaukowe i akademickie
-
Poradniki
-
Prawo
-
Przewodniki i podróże
-
Psychologia
- Filozofie życiowe
- Komunikacja międzyludzka
- Mindfulness
- Ogólne
- Perswazja i NLP
- Psychologia akademicka
- Psychologia duszy i umysłu
- Psychologia pracy
- Relacje i związki
- Rodzicielstwo i psychologia dziecka
- Rozwiązywanie problemów
- Rozwój intelektualny
- Sekret
- Seksualność
- Uwodzenie
- Wygląd i wizerunek
- Życiowe filozofie
-
Religia
-
Sport, fitness, diety
-
Bazy danych
-
Big Data
-
Biznes i ekonomia
-
Cyberbezpieczeństwo
-
Data Science
-
DevOps
-
Dla dzieci
-
Elektronika
-
Grafika/Wideo/CAX
-
Gry
-
Microsoft Office
-
Narzędzia programistyczne
-
Programowanie
-
Rozwój osobisty
-
Sieci komputerowe
-
Systemy operacyjne
-
Testowanie oprogramowania
-
Urządzenia mobilne
-
UX/UI
-
Web development
Poznaj najlepsze praktyki programowania z użyciem platformy Java
Język Java jest konsekwentnie udoskonalany i unowocześniany dzięki zaangażowaniu wielu ludzi. Nowoczesny język Java staje się coraz bardziej wieloparadygmatowy, co oznacza, że stosowanie najlepszych praktyk w coraz większym stopniu determinuje jakość kodu. Obecnie napisanie kodu, który prawidłowo działa i może być łatwo zrozumiany przez innych programistów, nie wystarczy - należy zbudować program w taki sposób, aby można było go łatwo modyfikować. Jako że Java stała się obszerną i złożoną platformą, konieczne stało się uaktualnienie najlepszych praktyk.
Ta książka jest kolejnym, trzecim wydaniem klasycznego podręcznika programowania w Javie. Poszczególne rozdziały zostały gruntownie przejrzane, zaktualizowane i wzbogacone o sporo ważnych treści. Znalazło się tu wiele wartościowych porad dotyczących organizowania kodu w taki sposób, aby stał się przejrzysty, co ułatwi przyszłe modyfikacje i usprawnienia. Poza takimi zagadnieniami, jak programowanie zorientowane obiektowo czy korzystanie z różnych typów, obszernie omówiono stosowanie lambd i strumieni, zasady obsługi wyjątków, korzystania ze współbieżności i serializacji. Książka składa się z dziewięćdziesięciu tematów pogrupowanych w dwanaście rozdziałów. Taki układ pozwala na szybkie odnalezienie potrzebnego rozwiązania.
W książce między innymi:
- interfejsy funkcyjne, wyrażenia lambda, referencje do metod oraz strumienie
- metody domyślne i statyczne w interfejsach
- wnioskowanie typów
- korzystanie z @SafeVarargs
- instrukcja try z zasobami
- nowe elementy bibliotek Javy
Java: jakość kodu, efektywność działania i przyjemność programowania.
Słowo wstępne (9)
Przedmowa (11)
Podziękowania (15)
Rozdział 1. Wprowadzenie (19)
Rozdział 2. Tworzenie i usuwanie obiektów (23)
- Temat 1. Tworzenie statycznych metod fabrycznych zamiast konstruktorów (23)
- Temat 2. Zastosowanie budowniczego do obsługi wielu parametrów konstruktora (28)
- Temat 3. Wymuszanie właściwości singleton za pomocą prywatnego konstruktora lub typu enum (36)
- Temat 4. Wykorzystanie konstruktora prywatnego w celu uniemożliwienia utworzenia obiektu (38)
- Temat 5. Stosuj wstrzykiwanie zależności zamiast odwoływania się do zasobów na sztywno (39)
- Temat 6. Unikanie powielania obiektów (41)
- Temat 7. Usuwanie niepotrzebnych referencji do obiektów (45)
- Temat 8. Unikanie finalizatorów i oczyszczaczy (48)
- Temat 9. Preferuj konstrukcję try z zasobami zamiast try-finally (54)
Rozdział 3. Metody wspólne dla wszystkich obiektów (57)
- Temat 10. Zachowanie założeń w trakcie przedefiniowywania metody equals (58)
- Temat 11. Przedefiniowywanie metody hashCode wraz z equals (70)
- Temat 12. Przedefiniowywanie metody toString (75)
- Temat 13. Rozsądne przedefiniowywanie metody clone (78)
- Temat 14. Implementacja interfejsu Comparable (86)
Rozdział 4. Klasy i interfejsy (93)
- Temat 15. Ograniczanie dostępności klas i ich składników (93)
- Temat 16. Stosowanie metod akcesorów zamiast pól publicznych w klasach publicznych (98)
- Temat 17. Zapewnianie niezmienności obiektu (100)
- Temat 18. Zastępowanie dziedziczenia kompozycją (107)
- Temat 19. Projektowanie i dokumentowanie klas przeznaczonych do dziedziczenia (113)
- Temat 20. Stosowanie interfejsów zamiast klas abstrakcyjnych (119)
- Temat 21. Projektowanie interfejsów na długie lata (124)
- Temat 22. Wykorzystanie interfejsów jedynie do definiowania typów (127)
- Temat 23. Zastępowanie oznaczania klas hierarchią (129)
- Temat 24. Zalety stosowania statycznych klas składowych (132)
- Temat 25. Ograniczenie pliku źródłowego do pojedynczej klasy głównego poziomu (135)
Rozdział 5. Typy ogólne (139)
- Temat 26. Nie korzystaj z typów surowych (139)
- Temat 27. Eliminowanie ostrzeżeń o braku kontroli (144)
- Temat 28. Korzystanie z list zamiast tablic (147)
- Temat 29. Stosowanie typów ogólnych (151)
- Temat 30. Stosowanie metod ogólnych (156)
- Temat 31. Zastosowanie związanych szablonów do zwiększania elastyczności API (159)
- Temat 32. Ostrożne łączenie typów ogólnych i parametrów varargs (166)
- Temat 33. Wykorzystanie heterogenicznych kontenerów bezpiecznych dla typów (171)
Rozdział 6. Typy wyliczeniowe i adnotacje (177)
- Temat 34. Użycie typów wyliczeniowych zamiast stałych int (177)
- Temat 35. Użycie pól instancyjnych zamiast kolejności (188)
- Temat 36. Użycie EnumSet zamiast pól bitowych (189)
- Temat 37. Użycie EnumMap zamiast indeksowania kolejnością (191)
- Temat 38. Emulowanie rozszerzalnych typów wyliczeniowych za pomocą interfejsów (196)
- Temat 39. Korzystanie z adnotacji zamiast wzorców nazw (200)
- Temat 40. Spójne użycie adnotacji Override (207)
- Temat 41. Użycie interfejsów znacznikowych do definiowania typów (210)
Rozdział 7. Lambdy i strumienie (213)
- Temat 42. Stosuj lambdy zamiast klas anonimowych (213)
- Temat 43. Wybieraj referencje do metod zamiast lambd (217)
- Temat 44. Korzystaj ze standardowych interfejsów funkcyjnych (219)
- Temat 45. Rozważnie korzystaj ze strumieni (223)
- Temat 46. Stosuj w strumieniach funkcje bez efektów ubocznych (231)
- Temat 47. Zwracaj kolekcje zamiast strumieni (236)
- Temat 48. Ostrożnie korzystaj ze strumieni zrównoleglonych (242)
Rozdział 8. Metody (247)
- Temat 49. Sprawdzanie poprawności parametrów (247)
- Temat 50. Defensywne kopiowanie (250)
- Temat 51. Projektowanie sygnatur metod (255)
- Temat 52. Rozsądne korzystanie z przeciążania (257)
- Temat 53. Rozsądne korzystanie z metod varargs (263)
- Temat 54. Zwracanie pustych tablic lub kolekcji zamiast wartości null (265)
- Temat 55. Rozsądne zwracanie obiektów opcjonalnych (267)
- Temat 56. Tworzenie komentarzy dokumentujących dla udostępnianych elementów API (272)
Rozdział 9. Programowanie (281)
- Temat 57. Ograniczanie zasięgu zmiennych lokalnych (281)
- Temat 58. Stosowanie pętli for-each zamiast tradycyjnych pętli for (284)
- Temat 59. Poznanie i wykorzystywanie bibliotek (287)
- Temat 60. Unikanie typów float i double, gdy potrzebne są dokładne wyniki (290)
- Temat 61. Stosowanie typów prostych zamiast opakowanych typów prostych (292)
- Temat 62. Unikanie typu String, gdy istnieją bardziej odpowiednie typy (296)
- Temat 63. Problemy z wydajnością przy łączeniu ciągów znaków (298)
- Temat 64. Odwoływanie się do obiektów poprzez interfejsy (299)
- Temat 65. Stosowanie interfejsów zamiast refleksyjności (301)
- Temat 66. Rozważne wykorzystywanie metod natywnych (304)
- Temat 67. Unikanie przesadnej optymalizacji (306)
- Temat 68. Wykorzystanie ogólnie przyjętych konwencji nazewnictwa (309)
Rozdział 10. Wyjątki (313)
- Temat 69. Wykorzystanie wyjątków w sytuacjach nadzwyczajnych (313)
- Temat 70. Stosowanie wyjątków przechwytywanych i wyjątków czasu wykonania (316)
- Temat 71. Unikanie niepotrzebnych wyjątków przechwytywanych (318)
- Temat 72. Wykorzystanie wyjątków standardowych (320)
- Temat 73. Zgłaszanie wyjątków właściwych dla abstrakcji (323)
- Temat 74. Dokumentowanie wyjątków zgłaszanych przez metodę (325)
- Temat 75. Udostępnianie danych o błędzie (326)
- Temat 76. Zachowanie atomowości w przypadku błędu (328)
- Temat 77. Nie ignoruj wyjątków (330)
Rozdział 11. Współbieżność (333)
- Temat 78. Synchronizacja dostępu do wspólnych modyfikowalnych danych (333)
- Temat 79. Unikanie nadmiarowej synchronizacji (338)
- Temat 80. Stosowanie wykonawców, zadań i strumieni zamiast wątków (344)
- Temat 81. Stosowanie narzędzi współbieżności zamiast wait i notify (346)
- Temat 82. Dokumentowanie bezpieczeństwa dla wątków (352)
- Temat 83. Rozsądne korzystanie z późnej inicjalizacji (355)
- Temat 84. Nie polegaj na harmonogramie wątków (358)
Rozdział 12. Serializacja (361)
- Temat 85. Stosuj rozwiązania alternatywne wobec serializacji Javy (361)
- Temat 86. Rozsądne implementowanie interfejsu Serializable (365)
- Temat 87. Wykorzystanie własnej postaci serializowanej (368)
- Temat 88. Defensywne tworzenie metody readObject (375)
- Temat 89. Stosowanie typów wyliczeniowych zamiast readResolve do kontroli obiektów (381)
- Temat 90. Użycie pośrednika serializacji zamiast serializowanych obiektów (385)
Dodatek A. Tematy odpowiadające drugiemu wydaniu (389)
Dodatek B. Zasoby (393)
Skorowidz (399)
- Tytuł: Java. Efektywne programowanie. Wydanie III
- Autor: Joshua Bloch
- Tytuł oryginału: Effective Java (3rd Edition)
- Tłumaczenie: Rafał Jońca
- ISBN książki drukowanej: 978-83-283-4576-8, 9788328345768
- Data wydania książki drukowanej: 2018-08-17
- ISBN Ebooka: 978-83-283-4577-5, 9788328345775
- Data wydania: 2018-08-17
- Format: 158x235
- Identyfikator pozycji: javep3
- Kategorie:
- Wydawca: Helion