告诉你的一个类的类路径为 test.A现在创建A的一个实例
方法一,A a = new A();
方法二,A a = A.class.newInstance()
这两种方法有什么不同?

解决方案 »

  1.   

    从你具的例子来看,没有区别,而且纯粹脱裤子放屁但是new A() 和Class.forName(String).newInstance()有着本质区别前者,包括用A.class,在编译期已经确定,不可能在运行期变更,一旦要变更必须改变这部分代码
    而后者,Class.forName(String)的参数可以在运行期配置,而无须改动代码
      

  2.   

    还有 Class.newInstance调用的而是类的不带参数的构造方法
    而new 可以用类的其它构造方法。
      

  3.   

    最重要的,Class.forName(String).newInstance()是单子模式Singleton的,就是不管运行多次在那里运行都只会有一个实例.比如用在多线程中共用的一个实例对象.
    而new A()运行一次新建一个实例.
    一般提供newInstance()的类A都不会有构造方法,也就是不提供new A().
      

  4.   

    Class.forName(String).newInstance()是单例模式吗?
    有何证据?
      

  5.   

    〉Class.forName(String).newInstance()是单子模式Singleton的哪里学来的???!!!
      

  6.   

    用Class.newInstance()方法有时候是可以不创建一个新对象的.