从JVM的角度看,我们使用关键字new创建一个类的时候,这个类可以没有被加载。但是使用newInstance()方法的时候,就必须保证:1、这个类已经加载;2、这个类已经连接了。而完成上面两个步骤的正是Class的静态方法forName()所完成的,这个静态方法调用了启动类加载器,即加载java API的那个加载器。
注意的一点是,使用forName只是用来加载了类,instance方法获取到的对象默认是object类型的,我们在捕捉到这一对象以后,可以直接进行类型强转,这比起new一个实例来说,显而易见的自由度提高了。
java工厂?构建对象?加载对象?实例化?
最新推荐文章于 2024-07-06 13:22:39 发布