Basically, Java chooses the most specific method, if it finds more than one overloaded method that matches the signature. Here is an excerpt from the JavaRanch FAQs that explains it...
How is null evaluated? How is it more specific to a String object as compared to Object object?
If the FAQ is not sufficient enough to explain what is the "most specific method", I suggest that you do a search on this forum. This is a very often asked question -- and has been answered many times.