A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 殷士剑 中级黑马   /  2012-11-19 19:11  /  2327 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Class.forName()的作用

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 鼓励分 。

查看全部评分

5 个回复

倒序浏览
java里面的类也是一种事物,也是一种东西,也是一种对象,譬如说人具有胳膊具有腿,具有心脏,这些是人的共同地方,所以我们可以把现实中的人抽象成Person类,那么同样的java里的类也有方法、成员变量等,这些都是类的共性,我们同样可以把java里的类抽象出来,用Class类来表示和描述java里的类,而Class.forName(String name)方法创建以name为名字的类的Class对象,创建出来的这一个Class对象集中表现了代表了名字为name的这个类的特征,比方说方法构造函数等等。Class.forName(String name);等同于   类名.class; 也等同于 对象.getClass();

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
通过这个方法加载一个类,然后返回这个类的字节码。
回复 使用道具 举报
首先你要明白在java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的(和new 不一样,要分清楚)。

至于什么时候用,你可以考虑一下这个问题,给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?只有你提到的这个方法了,不过要再加一点。
A a = (A)Class.forName("pacage.A").newInstance();
这和你
A a = new A();
是一样的效果。
回复 使用道具 举报
作用是要求 JVM 查找并加载指定的类,也就是说 JVM 会执行该类的静态代码段。最熟 悉的就是 JDBC 连接数据库的时候加载驱动类。 注册一个数据库驱动,将驱动加载到当前的 JVM 中。Class.forName(xxx.xx.xx) 返回的是一个类,如在 Java 中,JDBC 连接数据库操作, 用该方法加载驱动类 2、反射,可以动态获取一个类的方法、属性、构造方法等信息,可以动态创建类 另外:Class.forName(String path)方法可根据我们给定的类全限定名来加载这个类文件到 内存中,并返回给我们一个 java.lang.Class 类的实例,这个 Class 类就是我们加载的那个类 文件在 java 中的模拟,通过 Class 类的实例,我们可以获得它的方法、构造器、反射的实例 化获得实例,再通过实例反射调用其方法等。反射算是 java 独特的一个功能,用处很大。
回复 使用道具 举报
一句话:  用于获取类的Class对象。 通常用于反射。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马