COREJAVA核心概述-反射

1、什么是反射

反射就是在程序运行的过程中,动态的创建对象。 只要知道该类的类名称,就可以使用它的字节码对象创建该类的一个对象。对于这个类中的任何一个成员或者属性,我们都可以访问或者使用它。

2、Class对象

1、什么是字节码文件?

字节码文件,也就是以.class结尾的文件,他是Java中的类经过编译之后生成的字节码数据文件!该文件最终会被JVM加载进内存。

2、什么是字节码对象?

前面说过,JVM最终会把字节码文件加载进内存,该文件进JVM内存之后,Java就会把他当做是一个字节码对象!因为Java是一门面向对象的语言,在Java的世界中,所有的东西都是对象,自然也包括该字节码文件了!

3、字节码对象的获取方式

(1)Object对象的getClass方法 (2)类型.class属性 (3)Class类的静态方法–>forName()

public class Test{
 public static void main(String[] args) throws Exception {
  //方式一
  //Object getClass()方法
  Person p = new Person();
  Class clazz1 = p.getClass();
		
  //方式二
  //类型.class属性
  Class clazz2 = Person.class;
  Class clazz3 = Student.class;
  Class clazz4 = int.class;//基本数据类型也有字节码对象
		
  //方式三
  //Class类的静态方法---> forName("类的完整路径");
  //注意:这里要用全路径名
  Class clazz5 = Class.forName("Test.Student");  		
  //思考:同一个类的字节码对象,在程序的一次运行过程中会被获取几次?
 }
}

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注