Просто из любопытства я попробовал этот пример.
public class Class1 {
public void method(Object obj){
System.out.println("Object");
}
public void method(String str){
System.out.println("String");
}
public static void main(String... arg){
new Class1().method(null);
}
}
Выход будет "String". Я хочу знать, на каком основании JVM решает вызвать метод, беря String в качестве аргумента, а не Object.