Errata (third edition)

(Errata for the second edition are here.)

Chapter 2

page 23, third bullet point:

"The total field stores a record of the total amount of money inserted into the machine by all users since the machine object was constructed."
should read
"The total field stores...since the machine object was constructed, excluding the current balance."

Chapter 3:

Page 78, Exercise 3.39:

"Set a breakpoint in the first line of the sendMessage method..."
should read
"Set a breakpoint in the first line of the sendMailItem method..."

Chapter 4

page 91, paragraph 4, line 1:

"the variable notes is set to hold..."
should read
"the variable note is set to hold..."

page 95, last paragraph, line 1:

"...we first use the Iterator method..."
should read
"...we first use the iterator method..."

Chapter 5

page 129, Exercise 5.7:

The last part of this exercise ("What does the documentation say about control characters...") is now very hard, since the documentation has been changed since Java version 5. It does not explicitly talk about control characters anymore, but about unicode values. The purpose of this exercise was just to get students to look up a technical detail in some documentation. So this could be replaces with, for example, "What will be returned if the string does not contain any whitespace characters?"

page 140, line 1:

"private HashMap responseMap<String, String>;"
should read
"private HashMap<String, String> responseMap;"

Chapter 12

page 386 (Code 12.18), 12 lines up from the bottom:

writer.write(details);
should read
writer.write(details.toString());

Chapter 14

(in the project code from the book CD only, not in the text:)

In project taxi-company-later-stage, in class TaxiCompany, method scheduleVehicle:

There is a cast in the source code that is not needed. Instead of

Vehicle vehicle = (Vehicle) it.next();

the code should read

Vehicle vehicle = it.next();

Note: this does not cause an error. The code will run, but the cast is superfluous.

Appendix D1

The Appendix states that operators on the same precedence level are evaluated left to right. That is false for unary operators, which evaluate right to left.

In the codepad:

int x = -1;
- ~x; // two unary operators == 0
-(~x); // right to left equivalent == 0
~(-x); // left to right == -2

 

Back to main page