Everything(primitives/objects) in Java is pass-by-value
When an object is passed as a parameter in Java, the value of the reference variable is copied and passed. Therefore, any change to the object will be visible when the function exits.
Everything in Java is passed by "value" by default, but the "value" that is passed is effectively the pointer (if you think of everything in Java as a pointer - the exception to this being primitives).
In C++, parameter passings could be done in three ways: call-by-value, call-by-pointer and call-by-reference.
Java's pass-by-value has the same effects as C++'s call-by-pointers for class objects?
It is usually referred to as pass-by-value, pass-by-reference, pass-by-const-reference (in C++). Passing by pointer is just another way to pass-by-value (you are passing the pointer by value, but what the pointer points to effectively by reference) - this is effectively what Java does. If you change the pointer value, it is not reflected outside the function, but if you change the data that is being pointed to, it is (example)