I think it is important that in Java there is only pass by value. If you pass a reference variable pointing to some object then it is still a copy of that variable which is passes to the method. If you make changes to that object by using the variable then the changes are also done outside the method:
But if you change the variable itself inside the method then this change is local to the method as you work with a copy:
In pass by reference you pass the address where the value of the variable is stored (which cannot be done in Java). If you pass a reference variable in Java then you pass a variable containing the address of some object. The variable is pass by value and you cannot change the stored address.