VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • 反射的概述

反射概述

类加载器(ClassLoader)

负责将类的字节码文件加载到内存中,并生成对应的Class对象

Class 对象

java.lang.Class类的对象,也叫字节码文件对象,每个Class对象对应一个字节码文件

类加载时机

1.创建类的实例
1
Student stu= new Student();

  

当程序创建了一次该类的对象时,再次创建该类的对象时,类的加载器不会再次将字节码文件加载到内存当中

2.访问类的静态成员
1
Calendar.getInstance*();

  

3.初始化类的子类
1
2
class User extends Person(){}
User user = new User();  //先加载父类

  

4.反射方式创建的Class对象
1
Class clazz =Class.forName("类的正名");

  

正名:包名+类名,例如:cn.qq.demo.Student

获取Class对象的三种方式

Object类的getClass()方法
1
Class clazz =对象名.getClass();

  

类的静态属性
1
Class clazz =类名.class;

  

Class类的静态方法
1
Class clazz =Class.forName("类的正名");

  

正名:包名+类名,例如:cn.qq.demo.Student

三种获取Class对象的例子:

Student.java

 

1
2
3
4
5
cn.qq.demo.Student
public class Student{
    
}

  

Demo.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cn.qq.demo.Demo
 
 
public class Demo{
    public static void main(String[] args) throws ClassNotFoundException{
        //方式一
        Student stu = new Student();
        Class clazz1 = stu.getClass();
        
        //方式二
        Class clazz2 = Student.class;
        
        //方式三
        Class clazz3 = Class.forName("cn.qq.demo.Student");
    }
}

  原文:https://www.cnblogs.com/kkwt/p/14296051.html


相关教程