Targeted at intermediate-to-advanced developers, this is the definitive tutorial introduction and reference to the Java SE7 language and its essential libraries. Co-authored by "father of Java" James Gosling and two respected leaders of the global Java community, this book brings together exclusive insights and best practices for doing more with Java, and writing more robust, efficient, and maintainable software. Developers worldwide have used previous editions to quickly gain a deep understanding of the Java programming language, its design goals, and its most effective use in real-world development. Now, every chapter has been updated to reflect best practices for Java SE7 coding, and several entirely new sections have been added. The Java Programming Language, Fifth Edition systematically covers most classes in Java's main packages, java.lang.*, java.util, and java.io, presenting in-depth explanations of why these classes work as they do, along with exceptionally instructive examples. The authors help experienced programmers gain unprecedented mastery over features and techniques ranging from "anonymous inner classes" and reflection to I/O, threading, and collections. The authors present exceptionally clear and practical explanations drawn from their immense experience pioneering the Java platform, and illustrate many of these examples using simple mathematical problems.
Excellent books for anyone who: - would like to learn programming in Java; - already knows a programming language, ideally object-oriented one; - doesn't want to subscribe to the Church of Design Pattern.
There's AND not OR between above items :D Very straight to the point and descriptive way of explaining things, even if a bit on the verbose side. Good read.
Il est tentant de comparer ce livre aux ouvrages équivalents sur le C et le C++, chacun étant un "best seller" de la littérature informatique, voir un monument pour ce qui est du Kernighan & Ritchie. Par son abord du type "tutorial", cet ouvrage se rapproche plus justement du K&R, et c'est tant mieux car l'aspect pédagogique y gagne, les auteurs justifiant les choix du langage sur le plan de la conception (bien qu'ils en profitent pour défendre l'utilisation des accesseurs de façon éhontée). Les différents aspects du langage sont illustrés de façon heureuse par des extraits de code. Sur le plan du contenu, on remarquera un traitement plutôt superficiel des exceptions (les exceptions chaînées ne sont même pas traitées), tandis que les streams sont plutôt trop largement détaillés, plutôt à la façon d'un manuel de référence. De façon générale, on regrettera un manque de profondeur dans le traitement des différents aspects du langage, contrairement au "C++ Programming Language" de Bjarne Stroustrup. Par exemple la "wait set" n'est pas abordée dans le traitement de la classe Object. Ceci en fait probablement un excellent tutorial introductif au langage qu'un livre exhaustif sur celui-ci. Toutefois n'oublions pas qu'il existe le "JLS" pour cela. Egalement au chapitre des criques, un comportement trop "autarcique" des auteurs qui ne font même par référence au "Design Pattern" quand ils parlent du pattern "Observer", ou désignent le C et le C++ comme des "langages apparentés sans jamais les citer (!) et proposent des diagrammes de classes avec leur propre notation en ignorant complètement UML. Enfin, on se régalera des nombreuses et excellentes citations qui émaillent largement l'ouvrage, ainsi que des exemples Unicode qui nous donnent un aperçu de nombreux langages et de leur spécificité linguistiques, tels que le Russe, le Mandarin, le Tamoul, Le Croatien, le Géorgien et le Lituanien !