gogogo
Syndetics cover image
Image from Syndetics

Java puzzlers : traps, pitfalls, and corner cases / Joshua Bloch, Neal Gafter.

By: Contributor(s): Material type: TextTextPublication details: Upper Saddle River, NJ : Addison-Wesley, c2005.Description: xix, 282 p. : ill. ; 23 cmISBN:
  • 032133678X (pbk. : alk. paper)
  • 9780321336781 (pbk. : alk. paper)
Subject(s): Additional physical formats: Online version:: Java puzzlers.DDC classification:
  • 005.133BLO
Contents:
Expressive Puzzlers -- Puzzlers with Character -- Loopy Puzzlers -- Exceptional Puzzlers -- Classy Puzzlers -- Library Puzzlers -- Classier Puzzlers -- More Library Puzzlers -- Advanced Puzzlers.
Holdings
Item type Current library Call number Copy number Status Date due Barcode
Standard Loan Thurles Library Main Collection 005.133 BLO (Browse shelf(Opens below)) Available R19172YKRC
Standard Loan Thurles Library Main Collection 005.133 BLO (Browse shelf(Opens below)) 1 Available R19173AKRC

Enhanced descriptions from Syndetics:

"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(tm) 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(tm) , Bloch and Gafter dive deep into the subtleties of the Java programming language and its core libraries. Illustrated with visually stunning optical illusions, Java(tm) 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.



Includes bibliographical references and index.

Expressive Puzzlers -- Puzzlers with Character -- Loopy Puzzlers -- Exceptional Puzzlers -- Classy Puzzlers -- Library Puzzlers -- Classier Puzzlers -- More Library Puzzlers -- Advanced Puzzlers.

Table of contents provided by Syndetics

  • Preface (p. xi)
  • 1 Introduction (p. 1)
  • 2 Expressive Puzzlers (p. 5)
  • Puzzle 1 Oddity (p. 5)
  • Puzzle 2 Time for a Change (p. 7)
  • Puzzle 3 Long Division (p. 9)
  • Puzzle 4 It's Elementary (p. 11)
  • Puzzle 5 The Joy of Hex (p. 13)
  • Puzzle 6 Multicast (p. 15)
  • Puzzle 7 Swap Meat (p. 17)
  • Puzzle 8 Dos Equis (p. 19)
  • Puzzle 9 Tweedledum (p. 21)
  • Puzzle 10 Tweedledee (p. 23)
  • 3 Puzzlers with Character (p. 25)
  • Puzzle 11 The Last Laugh (p. 25)
  • Puzzle 12 ABC (p. 27)
  • Puzzle 13 Animal Farm (p. 29)
  • Puzzle 14 Escape Rout (p. 31)
  • Puzzle 15 Hello Whirled (p. 33)
  • Puzzle 16 Line Printer (p. 35)
  • Puzzle 17 Huh? (p. 37)
  • Puzzle 18 String Cheese (p. 39)
  • Puzzle 19 Classy Fire (p. 41)
  • Puzzle 20 What's My Class? (p. 43)
  • Puzzle 21 What's My Class, Take 2 (p. 45)
  • Puzzle 22 Dupe of URL (p. 47)
  • Puzzle 23 No Pain, No Gain (p. 49)
  • 4 Loopy Puzzlers (p. 53)
  • Puzzle 24 A Big Delight in Every Byte (p. 53)
  • Puzzle 25 Inclement Increment (p. 55)
  • Puzzle 26 In the Loop (p. 57)
  • Puzzle 27 Shifty i's (p. 59)
  • Puzzle 28 Looper (p. 61)
  • Puzzle 29 Bride of Looper (p. 63)
  • Puzzle 30 Son of Looper (p. 65)
  • Puzzle 31 Ghost of Looper (p. 67)
  • Puzzle 32 Curse of Looper (p. 69)
  • Puzzle 33 Looper Meets the Wolfman (p. 71)
  • Puzzle 34 Down for the Count (p. 73)
  • Puzzle 35 Minute by Minute (p. 75)
  • 5 Exceptional Puzzlers (p. 77)
  • Puzzle 36 Indecision (p. 77)
  • Puzzle 37 Exceptionally Arcane (p. 79)
  • Puzzle 38 The Unwelcome Guest (p. 81)
  • Puzzle 39 Hello, Goodbye (p. 83)
  • Puzzle 40 The Reluctant Constructor (p. 85)
  • Puzzle 41 Field and Stream (p. 87)
  • Puzzle 42 Thrown for a Loop (p. 89)
  • Puzzle 43 Exceptionally Unsafe (p. 93)
  • Puzzle 44 Cutting Class (p. 97)
  • Puzzle 45 Exhausting Workout (p. 101)
  • 6 Classy Puzzlers (p. 105)
  • Puzzle 46 The Case of the Confusing Constructor (p. 105)
  • Puzzle 47 Well, Dog My Cats! (p. 107)
  • Puzzle 48 All I Get Is Static (p. 109)
  • Puzzle 49 Larger Than Life (p. 111)
  • Puzzle 50 Not Your Type (p. 113)
  • Puzzle 51 What's the Point? (p. 115)
  • Puzzle 52 Sum Fun (p. 119)
  • Puzzle 53 Do Your Thing (p. 123)
  • Puzzle 54 Null and Void (p. 125)
  • Puzzle 55 Creationism (p. 127)
  • 7 Library Puzzlers (p. 131)
  • Puzzle 56 Big Problem (p. 131)
  • Puzzle 57 What's in a Name? (p. 133)
  • Puzzle 58 Making a Hash of It (p. 137)
  • Puzzle 59 What's the Difference? (p. 139)
  • Puzzle 60 One-Liners (p. 141)
  • Puzzle 61 The Dating Game (p. 143)
  • Puzzle 62 The Name Game (p. 145)
  • Puzzle 63 More of the Same (p. 147)
  • Puzzle 64 The Mod Squad (p. 149)
  • Puzzle 65 A Strange Saga of a Suspicious Sort (p. 152)
  • 8 Classier Puzzlers (p. 157)
  • Puzzle 66 A Private Matter (p. 157)
  • Puzzle 67 All Strung Out (p. 161)
  • Puzzle 68 Shades of Gray (p. 163)
  • Puzzle 69 Fade to Black (p. 165)
  • Puzzle 70 Package Deal (p. 167)
  • Puzzle 71 Import Duty (p. 169)
  • Puzzle 72 Final Jeopardy (p. 171)
  • Puzzle 73 Your Privates Are Showing (p. 173)
  • Puzzle 74 Identity Crisis (p. 175)
  • Puzzle 75 Heads or Tails? (p. 177)
  • 9 More Library Puzzlers (p. 183)
  • Puzzle 76 Ping Pong (p. 183)
  • Puzzle 77 The Lock Mess Monster (p. 185)
  • Puzzle 78 Reflection Infection (p. 189)
  • Puzzle 79 It's a Dog's Life (p. 193)
  • Puzzle 80 Further Reflection (p. 195)
  • Puzzle 81 Charred Beyond Recognition (p. 197)
  • Puzzle 82 Beer Blast (p. 199)
  • Puzzle 83 Dyslexic Monotheism (p. 201)
  • Puzzle 84 Rudely Interrupted (p. 203)
  • Puzzle 85 Lazy Initialization (p. 205)
  • 10 Advanced Puzzlers (p. 209)
  • Puzzle 86 Poison-Paren Litter (p. 209)
  • Puzzle 87 Strained Relations (p. 211)
  • Puzzle 88 Raw Deal (p. 213)
  • Puzzle 89 Generic Drugs (p. 217)
  • Puzzle 90 It's Absurd, It's a Pain, It's Superclass! (p. 221)
  • Puzzle 91 Serial Killer (p. 224)
  • Puzzle 92 Twisted Pair (p. 229)
  • Puzzle 93 Class Warfare (p. 231)
  • Puzzle 94 Lost in the Shuffle (p. 233)
  • Puzzle 95 Just Desserts (p. 237)
  • A Catalog of Traps and Pitfalls (p. 239)
  • B Notes on the Illusions (p. 259)
  • References (p. 265)
  • Index (p. 271)

Excerpt provided by Syndetics

Like many books, this one had a long gestation period. We've collected Java puzzles for as long as we've worked with the platform: since mid-1996, in case you're curious. In early 2001, we came up with the idea of doing a talk consisting entirely of Java puzzles. We pitched the idea to Larry Jacobs, then at Oracle, and he bought it hook, line, and sinker. We gave the first "Java Puzzlers" talk at the Oracle Open World conference in San Francisco in November 2001. To add a bit of pizazz, we introduced ourselves as "Click and Hack, the Type-it Brothers" and stole a bunch of jokes from Tom and Ray Magliozzi of Car Talk fame. The presentation was voted best-in-show, and probably would have been even if we hadn't voted for ourselves. We knew we were on to something. Dressed in spiffy blue mechanic's overalls emblazoned with the "cup and steam" Java logo, we recycled the Oracle talk at JavaOne 2002 to rave reviews--at least from our friends. In the years that followed, we came up with three more "Java Puzzlers" talks and presented them at countless conferences, corporations, and colleges in cities around the globe, from Oslo to Tokyo. The talks were almost universally well liked, and we got very little fruit thrown at us. In the March 2003 issue of Linux Magazine , we published an article consisting entirely of Java puzzles and received almost no hate mail. This book contains nearly all the puzzles from our talks and articles and many, many more. Although this book draws attention to the traps and pitfalls of the Java platform, we do not mean to denigrate it in any way. It is because we love the Java platform that we've devoted nearly a decade of our professional lives to it. Every platform with enough power to do real work has some problems, and Java has far fewer than most. The better you understand the problems, the less likely you are to get hurt by them, and that's where this book comes in. Most of the puzzles in the book focus on short programs that appear to do one thing but actually do something else. That's why we've chosen to decorate the book with optical illusions--drawings that appear to be one thing but are actually another. Also, you can stare at them while you're trying to figure out what in the world the programs do. Above all, we wanted this book to be fun. We sincerely hope that you enjoy solving the puzzles as much as we enjoyed writing them and that you learn as much from them as we did. And by all means, send us your puzzlers! If you have a puzzle that you think belongs in a future edition of this book, write it on the back of a $20 bill and send it to us, or e-mail it to puzzlers@javapuzzlers.com . If we use your puzzle, we'll give you credit. Last but not least, don't code like my brother. Josh Bloch Neal Gafter San Jose, California May 2005 032133678XP06102005 Excerpted from Java Puzzlers: Traps, Pitfalls, and Corner Cases by Neal Gafter, Joshua Bloch All rights reserved by the original copyright owners. Excerpts are provided for display purposes only and may not be reproduced, reprinted or distributed without the written permission of the publisher.

Author notes provided by Syndetics

Neal Gafter is a software engineer and Java evangelist at Google.

Powered by Koha