Based on Bloch and Gafter's standing room only Java Puzzlers talk at JavaOne, the heart of the book comprises over 100 Java programming language puzzlers: brainteasers that challenge the intellect while alerting programmers to the traps, pitfalls, and corner cases that lurk in the nether regions of the Java platform. All of the puzzles from the authors' popular JavaOne presentations are included, as are many puzzles never before seen in public. There are two major types of puzzles in the book. Most of the puzzles take the form of short programs that appear to do something but actually do something else. Readers will be encouraged to predict the behavior of the program before running it. After running the program, readers will be encouraged to figure out why it behaved as it did before consulting the solution. In a second type of puzzle, the reader will be asked to write a short program that performs some specific task. Most of the solutions will contain a moral, a rule the reader can follow to avoid the problematic behavior demonstrated in the puzzle. The puzzles are grouped into chapters based on the primary platform features they exercise and to maximize readability, fun, and pedagogical effectiveness.
Joshua Bloch Book order (chronological)





Effective Java
- 346 pages
- 13 hours of reading
Are you seeking a deeper understanding of the Java™ programming language to write clearer, more robust, and reusable code? This highly anticipated second edition brings together seventy-eight essential rules of thumb, offering best-practice solutions for everyday programming challenges. Thoroughly updated to reflect Java SE 5 and SE 6 features, it explores new design patterns and language idioms, helping you leverage features like generics, enums, annotations, and autoboxing. Each chapter comprises several standalone essays that provide specific advice, insights into Java subtleties, and excellent code examples. Comprehensive descriptions illuminate what to do, what not to do, and why. Highlights include new coverage of generics, enums, annotations, autoboxing, the for-each loop, varargs, and concurrency utilities, alongside updated techniques on classic topics such as objects, classes, libraries, methods, and serialization. The book also emphasizes avoiding traps and pitfalls associated with commonly misunderstood aspects of the language, focusing on fundamental libraries like java.lang, java.util, and, to a lesser extent, java.util.concurrent and java.io. Ultimately, this edition presents the most practical and authoritative guidelines for writing efficient, well-designed programs.
Java efektivně. 57 zásad softwarového experta
- 230 pages
- 9 hours of reading
Kniha se výrazně liší od běžných programátorských příruček, soustřeďuje se na praktické a efektivní používání Javy a jejích konstrukcí. Nabídne vám 57 cenných rad řešících programátorské problémy, s nimiž se většina vývojářů denně setkává. Obsahuje přesný a výstižný popis technik používaných experty, kteří vyvinuli platformu Java. Tyto rady jasně popisují, co dělat a co naopak nedělat, aby vaše programy byly průzračné, robustní a efektivní.
The Definitive Guide to Java Platform Best Practices has been thoroughly updated for Java 7, 8, and 9, reflecting the significant changes since the last edition was published after Java 6. This Jolt award-winning classic provides essential best-practices advice, catering to the evolving support for multiple programming paradigms in modern Java. Each chapter consists of several "items," presented as short, stand-alone essays offering specific guidance, insights into Java platform subtleties, and updated code examples. Comprehensive descriptions clarify what to do, what not to do, and the reasoning behind these practices. The third edition introduces features from Java 7, 8, and 9, including functional programming constructs that complement its object-oriented foundations. New items include a chapter focused on lambdas and streams, alongside coverage of functional interfaces, lambda expressions, method references, and streams. Additional topics encompass default and static methods in interfaces, type inference with the diamond operator for generics, the @SafeVarargs annotation, and the try-with-resources statement. New library features such as the Optional interface, java.time, and convenience factory methods for collections are also discussed. Register your product at informit.com/register for access to the web edition eBook, updates, and corrections.