In Java, all variables containing proper objects are actually references (i.e. pointers). Therefore, method calls with these objects as arguments are always \"by reference\"
If you pass objects to a function by value, that function is free to use those objects as "working" variables without affecting the caller.
It's helpfull to avoid side-effects. If you program need such side-effect use call by reference.