黑马程序员技术交流社区
标题:
class.forName()的作用
[打印本页]
作者:
四顾行者
时间:
2014-6-16 23:15
标题:
class.forName()的作用
谁知道啊?
作者:
江祖贇
时间:
2014-6-16 23:18
可以去api看看………
作者:
轩辕冰晨
时间:
2014-6-16 23:35
Class.forName( )静态方法的目的是为了动态加载类,
至于什么时候用,可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它? A a = (A)Class.forName("pacage.A").newInstance();
这和 A a = new A();
是一样的效果。
作者:
沉默的爱
时间:
2014-6-16 23:36
通过类名获取字节码对象,如果类已加载到内存,则直接获取,如果还没加载,,那么这话就可以把其加载到内存,再获到字节码对象,所以,,这个方法 的参数应该是一个完整 的路径!
作者:
闫镜湾
时间:
2014-6-16 23:39
反射机制范围里的基础知识,在不new对象的情况下,通过类名取得该类字节码对象。
作者:
Aron
时间:
2014-6-17 19:45
Class.forName(xxx.xx.xx) 返回的是一个类
首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。
至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这个方法了,不过要再加一点。
A a = (A)Class.forName("pacage.A").newInstance();
这和你
A a = new A();
是一样的效果。
jvm会执行静态代码段,你要记住一个概念,静态代码是和class绑定的,class装载成功就表示执行了你的静态代码了。而且以后不会再走这段静态代码了。
Class.forName(xxx.xx.xx) 返回的是一个类
Class.forName(xxx.xx.xx);的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2