一、随堂复习
1. 反射的概述(熟悉)
-
Java给我们提供了一套API,使用这套API我们可以在运行时动态的获取指定对象所属的类,创建运行时类的对象,调用指定的结构(属性、方法)等。
-
API:
-
java.lang.Class:代表一个类 -
java.lang.reflect.Method:代表类的方法
-
java.lang.reflect.Field:代表类的成员变量
-
java.lang.reflect.Constructor:代表类的构造器
-
… …
-
-
反射的优点和缺点
-
优点:
-
提高了Java程序的灵活性和扩展性,
降低了耦合性,提高自适应能力 -
允许程序创建和控制任何类的对象,无需提前
硬编码目标类
-
-
缺点:
-
反射的
性能较低。-
反射机制主要应用在对灵活性和扩展性要求很高的系统框架上
-
-
反射会
模糊程序内部逻辑,可读性较差。
-
-
-
反射,平时开发中,我们使用并不多。主要是在框架的底层使用。
2. Class:反射的源头
-
Class的理解 (掌握)
针对于编写好的.java源文件进行编译(使用javac.exe),会生成一个或多个.class字节码文件。接着,我们使用java.exe命令对指定的.class文件进行解释运行。这个解释运行的过程中,我们需要将.class字节码文件加载(使用类的加载器)到内存中(存放在方法区)。加载到内存中的.class文件对应的结构即为Class的一个实例。
-
获取Class的实例的几种方式(前三种)
-
类.class
-
对象.getClass()
-
(使用较多)Class调用静态方法forName(String className)
-
(了解)使用ClassLoader的方法loadClass(String className)
-
-
Class 可以指向哪些结构。
简言之,所有Java类型! (1)class:外部类,成员(成员内部类,静态内部类),局部内部类,匿名内部类 (2)interface:接口 (3)[]:数组 (4)enum:枚举 (5)annotation:注解@interface (6)primitive type:基本数据类型 (7)void
3. 类的加载过程、类的加载器(理解)
-
类的加载过程
过程1:类的装载(loading) 将类的class文件读入内存,并为之创建一个java.lang.Class对象。此过程由类加载器完成 过程2:链接(linking) > 验证(Verify):确保加载的类信息符合JVM规范,例如:

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



