java里的类都new不行吗?为什么有的还要用类加载器创建类实例??

爱coding 发布于 2012/04/06 09:24
阅读 1K+
收藏 0
加载中
0
jobell
jobell
如果只给你一个类名字,在没有导入该类的情况下你能new一个对象吗?
0
Ken5233
Ken5233
没有导入该类 无法实例化  classloader无法加载的
0
jobell
jobell

引用来自“java_cmm”的答案

没有导入该类 无法实例化  classloader无法加载的
是在类中没有导入该类,不是说在classpath中没有该类的存在。
Ken5233
Ken5233
必须引用
0
Ken5233
Ken5233
 classforname 可以加载 
0
Ken5233
Ken5233
抽象和接口等无法实例化的。
0
jobell
jobell

无语了。怎么就说不明白呢。java_cmm 说的都对,但是我们阐述的不是一个事情。

0
Ken5233
Ken5233
楼主的意思,是想问class.forname加载在什么情况下使用或者说为何要有这个东西。例如我们在做类反射时调用等
0
Jacle
Jacle
动态加载啊。可以更改配置文件来实现动态加载类,不能修改编译后的class文件,只要更改配置文件
0
黑土豆
黑土豆
这个问题提的好抽象啊!学习了!
0
白米团子
一方面是因为省代码,Class。forName()是用同一个类加载器把一整个jar包里所有的类全部导入并实例化,你用new的话要一个一个的导一个一个实例化。使用的情况也不太一样,new是通过复制不同的类加载器的实例进行实例化。
返回顶部
顶部