OK, I've researched different opinions on this and my conclusion is that both views have some validity, especially if you want to simplify an explanation like we want to do in the book. I'm relying on this textbook:
http://www.info.ucl.ac.be/~pvr/book.html
The authors write about parameter passing in Java:
Quote:
Parameter passing to methods is done with call by value. A copy of the value is passed to the method and can be modified inside the method without changing the original value. For primitive values, such as integers and floats, this is straightforward. Java also passes object references (not the objects themselves) by value. So objects can almost be considered as using call by reference. The difference is that, inside the method, the field can be modified to refer to another object.
I've personally never bothered to write C++ pointers in my life, so I let this statement in the book how it was. In the interest of making things even simpler, I will now remove it completely. After all, my goal is to let readers focus on data management, not on language design.