当前页面: 开发资料首页 → J2SE 专题 → Class.newInstance与new 构造函数创建一个实例有什么不同吗?
Class.newInstance与new 构造函数创建一个实例有什么不同吗?
摘要: Class.newInstance与new 构造函数创建一个实例有什么不同吗?
告诉你的一个类的类路径为 test.A
现在创建A的一个实例
方法一,A a = new A();
方法二,A a = A.class.newInstance()
这两种方法有什么不同?
从你具的例子来看,没有区别,而且纯粹脱裤子放屁
但是new A() 和Class.forName(String).newInstance()有着本质区别
前者,包括用A.class,在编译期已经确定,不可能在运行期变更,一旦要变更必须改变这部分代码
而后者,Class.forName(String)的参数可以在运行期配置,而无须改动代码
还有 Class.newInstance调用的而是类的不带参数的构造方法
而new 可以用类的其它构造方法。
最重要的,Class.forName(String).newInstance()是单子模式Singleton的,就是不管运行多次在那里运行都只会有一个实例.比如用在多线程中共用的一个实例对象.
而new A()运行一次新建一个实例.
一般提供newInstance()的类A都不会有构造方法,也就是不提供new A().
Class.forName(String).newInstance()是单例模式吗?
有何证据?
〉Class.forName(String).newInstance()是单子模式Singleton的
哪里学来的???!!!
用Class.newInstance()方法有时候是可以不创建一个新对象的.
Class.newInstance()调用的是Class
无参的构造方法。