二哥啊

导航

 

 

Class  clazz =Person.class

Constructor cons = clazz.getConstructor(String.class,int.class);

Object obj = cons.newInstance("Tom",12);

Person p = (Person) obj;

通过反射,调用对象指定的属性方法

调用属性

Field age = clazz.getDeclaredField("age");

调用方法

clazz.getDeclaredMethod("show");

show.invole(p);

 

动态性

浏览器访问后台时 使用反射

 

java.lang.Class类的理解

1.类的加载过程

程序经过javac.exe命令以后,会生成一个或多个字节码文件(.class结尾),接着我们使用java.exe命令对某个字节码文件进行解释运行

相当于将某个字节码文件加载到内存中。此过程就称为类的加载。加载到内存中的类。我们就称为运行时类,此运行时类,就作为Class的一个实例

 

2.换句话说,Class的实例就对应着一个运行时的类

  获取Class的实例的方式

  方式一:调用运行时类的属性.class

  方式二:通过运行时类的对象,调用getClass()

    方式三: 调用Class静态方法forName(String classPath)

  方式四:调用类的加载器 ClassLoader

 

3.加载到内存中的运行时类,会缓存一定的时间。在此时间之内,我们可以通过不同的方式来获取此运行时类

posted on 2019-12-23 22:07  二哥啊  阅读(133)  评论(0编辑  收藏  举报