JAVA in a Nutshell by David Flanagan Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification +n: n'th paragraph from the top of the page -n: n'th paragraph from the bottom of the page The following errata were *corrected* in the 5/08 reprint. (39) End of "Assignment Operators" section; "flags & ~f;" now reads: "flags &= ~f;" (78) middle of the page; "commpile-time error" now reads: "compile-time error" {101} Code block two; The declaration omits a type, "public static final DAYS_PER_WEEK = 7;" now reads: "public static final int DAYS_PER_WEEK = 7;" {132} Example 3-6, comparreTo method; The comment about long/integer arithmetic in the method body is correct, but the code does not perform long arithmetic. There are three subtractions, each of which are done on integer values and thus will overflow for a large positive value minus a very negative value or vice versa. (The assignment to a long is a widening conversion (pp 26-27) but the widening conversion is not applied to the subexpressions. long result = that.y - this.y; // Smaller circles have bigger y values if (result == 0) result = this.x - that.x; // If same compare l-to-r if (result == 0) result = this.r - that.r; // If same compare radius now reads: long result = (long)that.y-this.y; // Smaller circles have bigger y if (result==0) result = (long)this.x-that.x; // If same compare l-to-r if (result==0) result = (long)this.r-that.r; // If same compare radius (235) 2nd paragraph from bottom; "The head of a PriorityQueue is always the the smallest element" now reads: "The head of a PriorityQueue is always the smallest element" (313) 3rd paragraph; "such as such as" now reads: "such as" (336) bottom; "supercede" now reads "supersede" (341) top; -Xmaxerrors through -Xswitchcheck are now outdented one level so that they're at the same level as -Xlint. {462} Deprecated entry; Under the horizontal rule is @Retention(RUNTIME), but in the last paragraph about Deprecated, the text says has source retention. "This annotation type has source retention" now reads: "This annotation type has runtime retention." {488} Class Short, 1st sentence; "This class provides an object wrapper around the short primitive type." now reads: "This class provides an immutable object wrapper around the short primitive type." (1022) 1st paragraph of the SchemaFactory entry; Changed "URL" to "URI" in the two places it appears in this paragraph. (1037) 2nd paragraph, 2nd sentence; "the a name-to-value mapping" now reads: "the name-to-value mapping" (1040) 2nd paragraph, 2nd sentence; verion "1.0" now reads: version "1.0" {1040} 3rd paragraph, 1st sentence; "calling its getDOMImplementation() object" now reads: "calling its getDOMImplementation() method."