Java反射机制深度解析与实战演练

需积分: 36 5 下载量 151 浏览量 更新于2024-09-11 收藏 58KB DOC 举报
"尚硅谷的Java教程,由宋红康老师主讲,涵盖了从基础到高级的Java知识,包括Java反射机制。课程采用JDK 11,包含Java 8至11的新特性,讲解深入全面,注重实战,提供大量的练习和面试题目。" 在Java编程中,反射机制是其强大的特性之一,允许程序在运行时动态地获取类的信息(如类名、方法名)并执行相应的操作。当JVM加载class文件时,它会通过ClassLoader及其子类来完成。ClassLoader是一个关键的Java运行时组件,负责查找和加载类文件。在Java中,每个类都由一个唯一的ClassLoader实例来加载。 关于反射的使用,我们可以实现以下功能: 1. 创建一个名为`Student`的类,包含`name`和`age`属性,并提供封装。同时,提供两个构造函数:一个无参数构造函数和一个带有两个参数的构造函数,用于打印提示信息。 2. 在`NewInstanceTest`类的`main`方法中,使用`Class`类来实例化`Student`对象,并通过反射调用`Student`类的有参和无参构造函数。 3. 创建`Mytxt`类,实现`myCreate()`方法,该方法能创建一个名为"D:\myhello.txt"的文件。在`NewInstanceTest`类中,通过反射调用`myCreate()`方法。 4. 使用自定义的`MyAnnotation`注解以及内置的注解(例如`@Override`,`@Deprecated`等),在`Student`类的`toString()`方法上添加注解。然后在`TestGetAnno`类中,通过反射获取并打印`Student`类`toString()`方法上的所有注解。 5. 反射可以用来修改私有成员变量。例如,定义一个`PrivateTest`类,包含私有属性`name`。通过反射获取并修改这个私有属性的值,然后调用`getName()`方法验证修改是否成功。 6. 最后,可以使用反射与`File`类结合,通过`Class.forName()`获取`File`类,打印其所有构造器,然后使用`newInstance()`创建`File`对象并创建"D:\mynew.txt"文件。 这些示例展示了Java反射机制的强大之处,它在处理动态类型、元数据访问和运行时代码操作等方面非常有用。同时,课程中的实践项目和面试题目确保了学习者能够将理论知识应用于实际场景,提高解决问题的能力。