只是出于好奇,我尝试了这个例子。
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);
}
}
输出为“字符串”。我想知道 JVM 在什么基础上决定调用将 String 作为参数而不是 Object 的方法。