newInstance 与new的区别

用newInstance与new的区别?

    区别在于创建对象的方式不一样,前者是使用类加载机制,后者new 的类可以没有加载;

    使用newInstance时候,必须保证:1.这个类已加载,2.这个类已经连接了。完成上面两个步骤的正是,class的静态方法forName() ,这个静态方法调用了启动类加载器(就是加载javaAPI的那个加载器)。

    newInstance: 弱类型。低效率。只能调用无参构造。    

    new: 强类型。相对高效。能调用任何public构造。
    newInstance()是实现IOC、反射、面对接口编程 和 依赖倒置 等技术方法的必然选择,new 只能实现具体类的实例化,不适合于接口编程。
里面就是通过这个类的默认构造函数构建了一个对象,如果没有默认构造函数就抛出InstantiationException, 如果没有访问默认构造函数的权限就抛出IllegalAccessException

原文地址:https://www.cnblogs.com/wangruihua-521/p/3152476.html