class Foo; void modify( Foo& x) { x.setBar(1);} ; <- pass by reference in C++.
class Foo; void modify( Foo x) { x.setBar(1);} ; <- pass by reference in Java.
Java spares you the & because Java only passes by reference.
Again, to argue the contrary, simply because it passes an object pointer by value, automatically, is to argue that C++ never passes by reference because it too takes the address automatically.
The fact is that Java passes by reference exactly as C++ does. However, even if this were not the case, it would also be completely acceptable for Java to refer to what it does as pass by reference simply because it chooses too. These things are object references. If I pass a java object reference, is it acceptable to say I'm passing by reference? If Java people want to say it is, then it is. Will the world end, for example, because the word "heap" means two different things in computer science? http://en.wikipedia.org/wiki/Heap OMG! Who is right?
My point is basically summed up here: http://xkcd.com/435/
You are where the physicist is standing. You insist that Java biologists are using your terms wrong while oblivious to the mathematician. You have your abstractions. Java has theirs.
Of course, maybe you're the chemist, and I'm the physicist (I still write assembly) and the hardware guys are the mathematicians. Whatever.
As for the insulting tone, yes its a character flaw. When someone makes a statement like "I'm really tired of hearing folks (incorrectly) state [whatever]", its insulting. Its especially insulting when its wrong. In an ideal world I'd be able to respond without resorting to responding in kind, but I'm flawed. Sorry. You're still wrong.