Java Puzzlers
$49.99
Quantity | Discount |
---|---|
5 + | $37.49 |
- Description
- Additional information
Description
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 is a principal engineer at Google and a Jolt Award-winner. He was previously a distinguished engineer at Sun Microsystems and a senior systems designer at Transarc. Josh led the design and implementation of numerous Java platform features, including JDK 5.0 language enhancements and the award-winning Java Collections Framework. He holds a Ph.D. in computer science from Carnegie Mellon University.
Neal Gafter is a software engineer and Java evangelist at Google. He was previously a senior staff engineer at Sun Microsystems, where he led the development of the Java compiler and implemented the Java language features in releases 1.4 through 5.0. Neal was a member of the C++ Standards Committee and led the development of C and C++ compilers at Sun Microsystems, Microtec Research, and Texas Instruments. He holds a Ph.D. in computer science from the University of Rochester.
Preface xi
Chapter 1: Introduction 1
Chapter 2: Expressive Puzzlers 5
Puzzle 1: Oddity 5
Puzzle 2: Time for a Change 7
Puzzle 3: Long Division 9
Puzzle 4: It’s Elementary 11
Puzzle 5: The Joy of Hex 13
Puzzle 6: Multicast 15
Puzzle 7: Swap Meat 17
Puzzle 8: Dos Equis 19
Puzzle 9: Tweedledum 21
Puzzle 10: Tweedledee 23
Chapter 3: Puzzlers with Character 25
Puzzle 11: The Last Laugh 25
Puzzle 12: ABC 27
Puzzle 13: Animal Farm 29
Puzzle 14: Escape Rout 31
Puzzle 15: Hello Whirled 33
Puzzle 16: Line Printer 35
Puzzle 17: Huh? 37
Puzzle 18: String Cheese 39
Puzzle 19: Classy Fire 41
Puzzle 20: What’s My Class? 43
Puzzle 21: What’s My Class, Take 2 45
Puzzle 22: Dupe of URL 47
Puzzle 23: No Pain, No Gain 49
Chapter 4: Loopy Puzzlers 53
Puzzle 24: A Big Delight in Every Byte 53
Puzzle 25: Inclement Increment 55
Puzzle 26: In the Loop 57
Puzzle 27: Shifty i’s 59
Puzzle 28: Looper 61
Puzzle 29: Bride of Looper 63
Puzzle 30: Son of Looper 65
Puzzle 31: Ghost of Looper 67
Puzzle 32: Curse of Looper 69
Puzzle 33: Looper Meets the Wolfman 71
Puzzle 34: Down for the Count 73
Puzzle 35: Minute by Minute 75
Chapter 5: Exceptional Puzzlers 77
Puzzle 36: Indecision 77
Puzzle 37: Exceptionally Arcane 79
Puzzle 38: The Unwelcome Guest 81
Puzzle 39: Hello, Goodbye 83
Puzzle 40: The Reluctant Constructor 85
Puzzle 41: Field and Stream 87
Puzzle 42: Thrown for a Loop 89
Puzzle 43: Exceptionally Unsafe 93
Puzzle 44: Cutting Class 97
Puzzle 45: Exhausting Workout 101
Chapter 6: Classy Puzzlers 105
Puzzle 46: The Case of the Confusing Constructor 105
Puzzle 47: Well, Dog My Cats! 107
Puzzle 48: All I Get Is Static 109
Puzzle 49: Larger Than Life 111
Puzzle 50: Not Your Type 113
Puzzle 51: What’s the Point? 115
Puzzle 52: Sum Fun 119
Puzzle 53: Do Your Thing 123
Puzzle 54: Null and Void 125
Puzzle 55: Creationism 127
Chapter 7: Library Puzzlers 131
Puzzle 56: Big Problem 131
Puzzle 57: What’s in a Name? 133
Puzzle 58: Making a Hash of It 137
Puzzle 59: What’s the Difference? 139
Puzzle 60: One-Liners 141
Puzzle 61: The Dating Game 143
Puzzle 62: The Name Game 145
Puzzle 63: More of the Same 147
Puzzle 64: The Mod Squad 149
Puzzle 65: A Strange Saga of a Suspicious Sort 152
Chapter 8: Classier Puzzlers 157
Puzzle 66: A Private Matter 157
Puzzle 67: All Strung Out 161
Puzzle 68: Shades of Gray 163
Puzzle 69: Fade to Black 165
Puzzle 70: Package Deal 167
Puzzle 71: Import Duty 169
Puzzle 72: Final Jeopardy 171
Puzzle 73: Your Privates Are Showing 173
Puzzle 74: Identity Crisis 175
Puzzle 75: Heads or Tails? 177
Chapter 9: More Library Puzzlers 183
Puzzle 76: Ping Pong 183
Puzzle 77: The Lock Mess Monster 185
Puzzle 78: Reflection Infection 189
Puzzle 79: It’s a Dog’s Life 193
Puzzle 80: Further Reflection 195
Puzzle 81: Charred Beyond Recognition 197
Puzzle 82: Beer Blast 199
Puzzle 83: Dyslexic Monotheism 201
Puzzle 84: Rudely Interrupted 203
Puzzle 85: Lazy Initialization 205
Chapter 10: Advanced Puzzlers 209
Puzzle 86: Poison-Paren Litter 209
Puzzle 87: Strained Relations 211
Puzzle 88: Raw Deal 213
Puzzle 89: Generic Drugs 217
Puzzle 90: It’s Absurd, It’s a Pain, It’s Superclass! 221
Puzzle 91: Serial Killer 224
Puzzle 92: Twisted Pair 229
Puzzle 93: Class Warfare 231
Puzzle 94: Lost in the Shuffle 233
Puzzle 95: Just Desserts 237
Appendix A Catalog of Traps and Pitfalls 239
Appendix B Notes on the Illusions 259
References 265
Index 271
The author of the classic best practices guide Effective Java now teaches programmers the flipside…how to avoid worst practices!
° Gives an honest assessment of the Java programming language
° Highly enjoyable read that gives any programmer the power to be smarter than the programmer next to them
° Puzzles are challenging and fun, but VERY practical and effective for teaching how to avoid problematic program behavior
The author of the classic best practices guide Effective Java now teaches programmers the flipside…how to avoid worst practices!
- Gives an honest assessment of the Java programming language
- Highly enjoyable read that gives any programmer the power to be smarter than the programmer next to them
- Puzzles are challenging and fun, but VERY practical and effective for teaching how to avoid problematic program behavior
“Every programming language has its quirks. This lively book reveals oddities of the Java programming language through entertaining and thought-provoking programming puzzles.”
–Guy Steele, Sun Fellow and coauthor of The Java™ Language Specification
“I laughed, I cried, I threw up (my hands in admiration).”
–Tim Peierls, president, Prior Artisans LLC, and member of the JSR 166 Expert Group
How well do you really know Java? Are you a code sleuth? Have you ever spent days chasing a bug caused by a trap or pitfall in Java or its libraries? Do you like brainteasers? Then this is the book for you!
In the tradition of Effective Java™, Bloch and Gafter dive deep into the subtleties of the Java programming language and its core libraries. Illustrated with visually stunning optical illusions, Java™ Puzzlers features 95 diabolical puzzles that educate and entertain. Anyone with a working knowledge of Java will understand the puzzles, but even the most seasoned veteran will find them challenging.
Most of the puzzles take the form of a short program whose behavior isn’t what it seems. Can you figure out what it does? Puzzles are grouped loosely according to the features they use, and detailed solutions follow each puzzle. The solutions go well beyond a simple explanation of the program’s behavior–they show you how to avoid the underlying traps and pitfalls for good. A handy catalog of traps and pitfalls at the back of the book provides a concise taxonomy for future reference.
Solve these puzzles and you’ll never again fall prey to the counterintuitive or obscure behaviors that can fool even the most experienced programmers.
“Every programming language has its quirks. This lively book reveals oddities of the Java programming language through entertaining and thought-provoking programming puzzles.”
–Guy Steele, Sun Fellow and coauthor of The Java™ Language Specification
“I laughed, I cried, I threw up (my hands in admiration).”
–Tim Peierls, president, Prior Artisans LLC, and member of the JSR 166 Expert Group
How well do you really know Java? Are you a code sleuth? Have you ever spent days chasing a bug caused by a trap or pitfall in Java or its libraries? Do you like brainteasers? Then this is the book for you!
In the tradition of Effective Java™, Bloch and Gafter dive deep into the subtleties of the Java programming language and its core libraries. Illustrated with visually stunning optical illusions, Java™ Puzzlers features 95 diabolical puzzles that educate and entertain. Anyone with a working knowledge of Java will understand the puzzles, but even the most seasoned veteran will find them challenging.
Most of the puzzles take the form of a short program whose behavior isn’t what it seems. Can you figure out what it does? Puzzles are grouped loosely according to the features they use, and detailed solutions follow each puzzle. The solutions go well beyond a simple explanation of the program’s behavior–they show you how to avoid the underlying traps and pitfalls for good. A handy catalog of traps and pitfalls at the back of the book provides a concise taxonomy for future reference.
Solve these puzzles and you’ll never again fall prey to the counterintuitive or obscure behaviors that can fool even the most experienced programmers.
Additional information
Dimensions | 0.90 × 7.30 × 9.10 in |
---|---|
Imprint | |
Format | |
ISBN-13 | |
ISBN-10 | |
Author | |
Subjects | professional, higher education, Employability, IT Professional, Y-AA AW PROF – PROG LANGUAGES |