There has been a good amount of debate on whether "Java is pass by value or pass by reference?". Well, lets conclude it last time, Java is pass by value and not pass by reference. If it had been pass by reference, we should have been able to C like swaping of objects, but we can't do that in java. We know it already, right? When you pass a instance to a method, its memory address are copied bit by bit to new reference variable, thus both pointing to same instance. But if you change the reference inside method, original reference will not get chnage. If it was pass by reference, then it would have got changed also.