TL;DR

When we pass an object (or an object “reference”) to a method we are actually passing a copy of the bits in the reference, so is passed by value

This is a really really tricky question, since many people thinks that you are actually passing a reference to a method (an object reference of course) and not the object itself.

And this is half true

We need to define what actually which information holds the object reference, in this case a variable holds the exact bits that tell the JVM how to get the referenced object in the Heap (the java space in memory) .

So when we pass an object (or an object “reference”) to a method we are actually passing a copy of the bits in the reference, this may look like 3bad086a, and not the reference itself neither the object. 

So, the next time someone asks you if Java is “passed by value” or “passed by reference” you know the answer and why is actually passed by value.