Class-Loader搜索和加载类的顺序是:
现在,如果我使用构造函数创建用户定义的String类。
class String {
public String(){
System.out.println("This is user defined String Class");
}
}
然后执行以下代码:
public class Checking {
public static void main(java.lang.String[] args){
String s= new String();
}
}
上述代码的输出是 "这是用户定义的字符串类"
这意味着加载了用户定义的类,它由Application Class-Loader
加载所以,我的问题是如果首先加载bootstrap,为什么我得到那个输出? 我希望我的问题很明确。
答案 0 :(得分:1)
添加行
package java.lang
在您的代码之上,然后再次检查。你会发现你现在得到了预期的结果。
原因是,类名始终仅用作完全限定名,包括包名和类名。因此,在您的情况下,String
与java.lang.String
不同,因此无法在rt.jar
中找到