站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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


无参的构造方法。


↑返回目录
前一篇: 关于接口和继承的基础知识的一个疑问
后一篇: 带属性的List要怎么排序