今天爱分享给大家带来Class.forName 的作用?为什么要用?【面试题详解】,希望能够帮助到大家。
【参考答案】
按参数中指定的字符串形式的类名去搜索并加载相应的类,如果该类字节码已经被加载
过,则返回代表该字节码的 Class 实例对象,否则,按类加载器的委托机制去搜索和加载该
类,如果所有的类加载器都无法加载到该类,则抛出 ClassNotFoundException。加载完这
个 Class 字节码后,接着就可以使用 Class 字节码的 newInstance 方法去创建该类的实例对
象了。有时候,我们程序中所有使用的具体类名在设计时(即开发时)无法确定,只有程序
运行时才能确定,这时候就需要使用 Class.forName 去动态加载该类,这个类名通常是在配
置文件中配置的,例如,spring 的 ioc 中每次依赖注入的具体类就是这样配置的,jdbc 的
驱动类名通常也是通过配置文件来配置的,以便在产品交付使用后不用修改源程序就可以更
换驱动类名。