Java. Efektywne programowanie. Wydanie III 🔍
Joshua Bloch HELION S.A., Third edition, Boston, 2018
英语 [en] · 波兰语 [pl] · PDF · 4.2MB · 2018 · 📘 非小说类图书 · 🚀/lgli/lgrs · Save
描述
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.
备用文件名
lgrsnf/Java. Efektywne programowanie. Wydanie III (2018, Helion) - Joshua Bloch.pdf
备选标题
Effective Java Programming Language Guide
备选标题
Java. Эффективное программирование
备选标题
Effective JavaTM
备选作者
Джошуа Блох; [перевод с английского и редакция И. В. Красикова]
备选作者
Bloch, Joshua
备选作者
Блох, Джошуа
备用出版商
Globe Fearon Educational Publishing
备用出版商
Addison-Wesley Professional
备用出版商
Диалектика; Диалектика
备用出版商
Longman Publishing
备用出版商
Addison Wesley
备用出版商
Cengage Gale
备用版本
3-е изд., Москва, Санкт-Петербург, Russia, 2022
备用版本
Pearson Education (US), Boston, MA, 2017
备用版本
United States, United States of America
备用版本
3rd Edition, December 27, 2017
备用版本
Third Edition, PS, 2017
备用版本
3rd ed, Boston, 2018
备用版本
Poland, Poland
备用版本
Jan 06, 2018
元数据中的注释
decrypted from 4DF099BFEECBC56F189BEC06BA54FD9D source file
元数据中的注释
Предм. указ.: с. 453-457
Библиогр.: с. 449-452
Пер.: Bloch, Joshua (1961- ) Effective Java 3th ed. Boston [etc.] : Addison-Wesley, cop. 2018 978-0-13-468599-1
元数据中的注释
РГБ
元数据中的注释
Russian State Library [rgb] MARC:
=001 011124931
=005 20220609100811.0
=008 181224s2022\\\\ru\||||\\\\\\\0||\|\rus|d
=017 \\ $a КН-П-22-041862 $b RuMoRKP
=017 \\ $a КН-П-18-097759 $b RuMoRKP
=020 \\ $a 978-5-6041394-4-8 $c 500 экз.
=040 \\ $a RuMoRGB $b rus $e rcr
=041 1\ $a rus $h eng
=044 \\ $a ru
=084 \\ $a З973.2-018.19Java,0 $2 rubbk
=100 1\ $a Блох, Джошуа $d 1961-
=245 00 $a Java. Эффективное программирование $c Джошуа Блох ; [перевод с английского и редакция И. В. Красикова]
=250 \\ $a 3-е изд.
=260 \\ $a Москва $b Диалектика ; $c 2022 $a Санкт-Петербург $b Диалектика
=300 \\ $a 457 с. $c 24 см
=336 \\ $a текст (text) $b txt $2 rdacontent
=337 \\ $a неопосредованный (unmediated) $b n $2 rdamedia
=338 \\ $a том (volume) $b nc $2 rdacarrier
=500 \\ $a Предм. указ.: с. 453-457
=504 \\ $a Библиогр.: с. 449-452
=534 \\ $p Пер.: $a Bloch, Joshua (1961- ) $t Effective Java $b 3th ed. $c Boston [etc.] : Addison-Wesley, cop. 2018 $z 978-0-13-468599-1
=650 \7 $a Вычислительная техника -- Вычислительные машины электронные цифровые -- Программирование -- Языки программирования -- Java $2 rubbk
=852 \\ $a РГБ $b FB $j 2 22-35/207 $x 90
备用描述
Spis treści
Słowo wstępne
Przedmowa
Podziękowania
Rozdział 1. Wprowadzenie
Rozdział 2. 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
Rozdział 5. Typy ogólne
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
Dodatek A. Tematy odpowiadające drugiemu wydaniu
Dodatek B. Zasoby
Skorowidz
备用描述
Since this Jolt-award winning classic was last updated in 2008 (shortly after Java 6 was released), Java has changed dramatically. The principal enhancement in Java 8 was the addition of functional programming constructs to Java's object-oriented roots. Java 7, 8, and 9 also introduced language features, such as the try-with-resources statement, the diamond operator for generic types, default and static methods in interfaces, the @SafeVarargs annotation, and modules. New library features include pervasive use of functional interfaces and streams, the java.time package for manipulating dates and times, and numerous minor enhancements such as convenience factory methods for collections.
In this new edition of Effective Java , Bloch updates the work to take advantage of these new language and library features, and provides specific best practices for their use. Java's increased support for multiple paradigms increases the need for best-practices advice, and this book delivers.
As in previous editions, each chapter consists of several "items," each presented in the form of a short, standalone essay that provides specific advice, insight into Java platform subtleties, and updated code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why. Coverage includes:
Updated techniques and best practices on classic topics, including objects, classes, methods, libraries, and generics How to avoid the traps and pitfalls of commonly misunderstood subtleties of the platform Focus on the language and its most fundamental libraries, such as java.lang and java.util
备用描述
The Definitive Guide to Java Platform Best Practices--Updated for Java 7, 8, and 9 Java has changed dramatically since the previous edition of Effective Java was published shortly after the release of Java 6. This Jolt award-winning classic has now been thoroughly updated to take full advantage of the latest language and library features. The support in modern Java for multiple paradigms increases the need for specific best-practices advice, and this book delivers. As in previous editions, each chapter of Effective Java, Third Edition, consists of several "items," each presented in the form of a short, stand-alone essay that provides specific advice, insight into Java platform subtleties, and updated code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why. The third edition covers language and library features added in Java 7, 8, and 9, including the functional programming constructs that were added to its object-oriented roots. Many new items have been added, including a chapter devoted to lambdas and streams. New coverage includes Functional interfaces, lambda expressions, method references, and streams Default and static methods in interfaces Type inference, including the diamond operator for generic types The @SafeVarargs annotation The try-with-resources statement New library features such as the Optional interface, java.time, and the convenience factory methods for collections Register your product at informit.com/register for convenient access to the web edition eBook, updates, and/or corrections as they become available
备用描述
Introduction -- Creating And Destroying Objects -- Methods Common To All Objects -- Classes And Interfaces -- Generics -- Enums And Annotations -- Methods -- General Programming -- Exceptions -- Concurrency -- Serialization. Joshua Bloch. Updated For Java 9--cover. Includes Bibliographical References And Index.
开源日期
2024-09-18
更多信息……

🚀 快速下载

成为会员以支持书籍、论文等的长期保存。为了感谢您对我们的支持,您将获得高速下载权益。❤️

🐢 低速下载

由可信的合作方提供。 更多信息请参见常见问题解答。 (可能需要验证浏览器——无限次下载!)

所有选项下载的文件都相同,应该可以安全使用。即使这样,从互联网下载文件时始终要小心。例如,确保您的设备更新及时。
  • 对于大文件,我们建议使用下载管理器以防止中断。
    推荐的下载管理器:JDownloader
  • 您将需要一个电子书或 PDF 阅读器来打开文件,具体取决于文件格式。
    推荐的电子书阅读器:Anna的档案在线查看器ReadEraCalibre
  • 使用在线工具进行格式转换。
    推荐的转换工具:CloudConvertPrintFriendly
  • 您可以将 PDF 和 EPUB 文件发送到您的 Kindle 或 Kobo 电子阅读器。
    推荐的工具:亚马逊的“发送到 Kindle”djazz 的“发送到 Kobo/Kindle”
  • 支持作者和图书馆
    ✍️ 如果您喜欢这个并且能够负担得起,请考虑购买原版,或直接支持作者。
    📚 如果您当地的图书馆有这本书,请考虑在那里免费借阅。