Java的反射机制笔记

127 阅读2分钟

一、简单介绍一下反射机制

在开始研究Java的反射机制之前先来简单的了解一下Java的类加载。

1、类的加载概述

当程序要使用某个类的时候如果该类还没有被加载到内存中,则系统会通过加载、连接、初始化这三个步骤来实现对这个对这个类的初始化。

加载时机

  • 创建类的实例
  • 访问类的静态变量,或者为静态变量赋值
  • 调用类的静态方法
  • 使用反射方式强制创建某个类或接口对应的java.lang.Class对象
  • 初始化子类
  • 或者直接用java.exe来运行主类

2.反射概述

  • Java反射机制是在运行状态中,对于任意一个类,都能够取到这个类的所有属性和方法,对于任意一个对象,都能够去调用他任意的一个方法或者是任意的属性,这种动态获取信息和调用对象的方法的能力就是Java的反射机制。要想解剖一个类必须要先获取到这个类的字节码文件对象,取得这个类中的方法和属性就是要通过Class类中的方法,所以要先创建这个class文件的对象来进行操作。

3、获取class类型对象的方法

获取class类型对象的方法有三种

    1.通过class类的forName方法来获取Class对象

//Object的位子是写类名用的                                 
Class clazz = Class.forName("Object");

    2.通过类名.class的方法来获取Class对象

//Object的位置是写类名用的
Class clazz = Object.class;

    3.通过已有对象的.getClass()方法来获取Class对象

//Object的位置是用来写类名的
Object obj = new Object();
Class clazz = obj.getClass();

总共有以上三种方式来获取Class对象