码迷,mamicode.com
首页 > 其他好文 > 详细

反射的源头,Class类的实例

时间:2014-12-15 18:54:44      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   使用   sp   for   java   on   

java.lang.Class:是反射的源头。创建一个类,通过编译,生成.class文件。之后使用java.exe加载(JVM的类加载器)加载此.class文件。加载到内存以后,就是一个运行时类,存在缓冲区。那么这个运行时类本身就是一个Class的实例。

1. 一个运行时类只加载一次

2. 有了Class的实例以后,才可以进行如下操作

1)创建对应的运行时类的对象

2)获取对应的运行时类的完整结构(属性,方法,构造器…)

3)获取对应的运行时类的指定结构(属性,方法,构造器)

4)反射的应用:动态代理

获取Class类的实例

package lianxi1;

import org.junit.Test;

public class TestReflection {
//如何获取Class的实例
@Test
  public void test1() throws ClassNotFoundException{
    //1.通过运行时类本身的class属性
    Class clazz1 = Person.class;
    System.out.println(clazz1.getName());
    //2.通过运行时类的对象获取
    Person p = new Person("foj",23);
    Class clazz2 = p.getClass();
    System.out.println(clazz2.getName());
    //3.通过Class的静态方法获取,体现反射的动态性
    String s1 = "lianxi1.Person";
    Class clazz3 = Class.forName(s1);
    //clazz3.newInstance();
    System.out.println(clazz3.getName());
    //4.通过类的加载器
    ClassLoader classloader = this.getClass().getClassLoader();
    Class clazz4 = classloader.loadClass(s1);
    System.out.println(clazz4.getName());
    
}
}

反射的源头,Class类的实例

标签:style   blog   io   color   使用   sp   for   java   on   

原文地址:http://www.cnblogs.com/yjtm53/p/4165373.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!