区别就是forName方法可以控制初不初始化一个类,即可以选择执行static块的内容,而loadclass仅仅只是将类加载到JVM中。
例如;我们做mysql数据库连接的时候经常会有这句
Class.forName("com.mysql.jdbc.Driver");如果使用loadclass就不行,除非newinstance;
下面我们看一下这个类的代码
//
// Register ourselves with the DriverManager
//
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
原来这个类是在static方法中将自己注册的,所以必须执行static里面的方法,所以loadclass不行