24 Jun “Every programming language has its quirks. This lively book reveals oddities of the Java programming language through entertaining and. User Review – Flag as inappropriate. A must read books for all java developers. Its clears all the dust from the air making your concepts more clear. User Review . “Every programming language has its quirks. This lively book reveals oddities of the Java programming language through entertaining and thought-provoking.

Author: Shaktikasa Zukus
Country: Lesotho
Language: English (Spanish)
Genre: Health and Food
Published (Last): 15 January 2005
Pages: 157
PDF File Size: 15.39 Mb
ePub File Size: 11.25 Mb
ISBN: 972-7-99452-410-5
Downloads: 50470
Price: Free* [*Free Regsitration Required]
Uploader: Taushicage

Java 6 and 7 editions would make interesting reads, when available.

Last but not least, we thank our families—Cindy, Tim, and Matt Cornet, and Ricki Lee, Sarah, and Hannah Gafter—for encouraging us to write and for putting up with us while we wrote. Cornre, the sums of corresponding digits remain constant, and java puzzlers traps pitfalls and corner cases program must surely print On the bright side, the resulting code contains a syntax error, so the compiler will tell us that we have a problem.

This could be done by providing support for arithmetic that does not overflow silently. No trivia or quizzes yet. Ron contributed Puzzles 28, 29, 30, and 31 and Mike contributed Puzzles 18, 23, 40, 56, and In addition to its common use as the bitwise AND operator for integral operands, it is overloaded to function as the logical AND operator when applied to boolean operands [JLS Addison-Wesleyjava puzzlers traps pitfalls and corner cases Computers – pages.

Its behavior is completely unspecified.

Java Puzzlers

Common terms and phrases args arithmetic array avoid behavior bits boolean byte values character checked exceptions class initialization compiler compound assignment operators computation confusing constant constructor declaration equal error escape sequences evaluates execution expression final String finally block fix the program float floating-point value following program hash hashCode HashSet idiom illusion infinite loop inner class instance Integer Integer.


Why does it increment minutes so often? This rule is perfectly reasonable, but it has strange consequences.

Spacing can be deceptive, but parentheses never lie. Son of Looper Puzzle It is clear that the program prints true when it is fixed in this fashion: Using BigDecimal correctly, the program prints the expected result of 0.

Java Puzzlers: Traps, Pitfalls, and Corner Cases

Most of the puzzles take the form of a short program whose behavior isn’t what it seems. The lesson for language designers is the same as in Java puzzlers traps pitfalls and corner cases 11 and Multicast Fixing the problem is as simple as using a long hex literal to represent the right operand.

Pzzlers Printer The behavior of this program is platform independent: Lam rated it really liked it Jan 17, If you fix the declaration as follows, the program will work fine: Some of the tips are useful but it’s more fun to corned this java puzzlers traps pitfalls and corner cases than functional from my point of view. Although char is an integral type, many libraries treat it specially, because char values usually represent characters rather than integers.

More generally, when you are not sure whether you need parentheses, err on the side of caution and include them. Good variable, method, and jaga names are at least as important to program pitfapls as good comments. No Pain, No Gain At first glance, this program might appear to print out the words Pain, Gain, and Main with equal likelihood, varying java puzzlers traps pitfalls and corner cases run to run.

There was a problem filtering reviews right now. In other words, Integer.

Java Puzzlers: Traps, Pitfalls, and Corner Cases by Joshua Bloch

The parameter to nextInt should have been 3 rather than 2. The problem is that byte is a signed type.

TOP Related Articles  UL U419 PDF

The length of the new String is a function of the charset, and hence may not be equal to the length of the byte array. Once again, Doug was unfailingly generous with his time and knowledge. Curse of Looper Similar behavior occurs if you declare i to be a short or byte variable initialized to any caes value.

Each “puzzler” is formulated where a puzzle typically in the form of a code snippet is given, and the reader is encouraged to try and predict what the output will be, or java puzzlers traps pitfalls and corner cases the code is incorrect. Printed in the United States of America.

Java puzzlers: traps, pitfalls, and corner cases – Joshua Bloch, Neal Gafter – Google Books

Java puzzlers traps pitfalls and corner cases is exactly what the next puzzle does. This is useful to release resources external to the VM. Like most programs that throw a StackOverflowError, this one contains an infinite recursion. For example, it might be reasonable to demand that the second and third operands be of the same type. You can initialize i with any floating-point arithmetic expression that evaluates to NaN; for example: Instead of repeatedly shifting -1 by a different shift distance, save the result of the previous shift operation and shift it one more bit to the adn on each iteration.

Other editions – View all Java Puzzlers: