标签:style io 使用 java ar strong for 文件 数据
为了区别于我们常用的Class,因此给了个中文名类类型。目的就是为了知道此Class非彼Class。上一篇博客已经介绍了Class Loader,它的作用是根据提供的信息来加载类到内存中。我之前有提过这个类信息的提供者就是本篇博客要介绍的Class。提醒:一个类的Class对象和它的Instance是不一样的,切记,不然你会混乱的。开始了!方法的介绍本来不应该这么简单,但是发现一句两句的说不清楚,并且对于Java的理解有很好的帮助。所以临时决定这部分单独的写一篇博客。这里就简单的列几个,之前用过的方法。
public class Test { static { System.out.println("静态初始化"); } { System.out.println("非静态初始化"); } }客户端
public class client { public static void main(String[] arg) throws ClassNotFoundException, InstantiationException, IllegalAccessException{ //方法1 Class c=Class.forName("com.zjj.ClassTest.Test"); //方法2 c=Test.class; //方法3 Test t=new Test(); c=t.getClass(); Test t2=new Test(); } }输出结果为:
也就是说,在运行期间,如果我们要产生某个类的对象或者的得到某个类的Class对象,Java虚拟机(JVM)会检查该类型的Class对象是否已被加载。如果没有被加载,JVM会根据类的名称找到.class文件并加载它。一旦某个类型的Class对象已被加载到内存,就可以用它来产生该类型的所有对象
反射机制总结:反射机制是Java的一个重要的内容,为Java提供了运行时加载类的能力,也就是动态性。Class是信息提供者,Class Loader是加载工具,二者都是反射机制最基础的部分。那么所谓的反射就是解除耦合,方式就是通过Class取得未知类的信息,而后实例化。当然Class Loader的所做的工作是隐藏的,是Class对象去调用的。所以无需显示的自己调用。那么,三篇博客至此结束了!
对了,从这篇博客里引出的内容,还得额外加一篇博客,内容已经和反射机制没有太大的联系但是有助于加深对Java运行机制的理解。
标签:style io 使用 java ar strong for 文件 数据
原文地址:http://blog.csdn.net/zhuojiajin/article/details/39255815