类的加载方式
- 隐式加载:new
- 显式加载:loadClass,forName等
loadClass和forName的区别
类的装载过程
- Class.forName得到的class是已经初始化完成的
- Classloder.loadClass得到的class是还没有链接的
public class Robot {
private String name;
public void sayHi(String helloSentence) {
System.out.println("Robot");
}
private String throwHello(String tag) {
return "Hello" + tag;
}
static {
System.out.println("Hello Robot");
}
}
public class LoadDifference {
public static void main(String[] args) throws ClassNotFoundException {
// ClassLoader cl = Robot.class.getClassLoader();
Class r = Class.forName("com.interview.javabasic.reflect.Robot");
Class.forName("com.mysql.jdbc.Driver");
}
}