反射,jdk1.8新特性,JVM面试题
一.反射
1. 什么是反射机制?反射机制优缺点
JAVA分为编译期和运行期.
**编译期:**是指把源码交给编译器编译成计算机可以执行的文件的过程。在 Java 中也就是把 Java 代码编成 class 文件的过程。编译期只是做了一些翻译功能,并没有把代码放在内存中运行起来,而只是把代码当成文本进行操作.
**运行期:**是把=编译后的文件交给计算机==执行,直到程序运行结束。所谓运行期就把在磁盘中的代码放到内存中执行起来。
JAVA反射机制是在运行过程中,对于任意一个类,都可以知道这个类的所有属性和方法;即反射机制指的是程序在运行时能够动态获取自身的信息
对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取信息,动态调用的方法称为java反射机制
反射机制优缺点
缺点 : 性能差,比直接的java代码慢很多
优点 : 灵活性高,运行期类型的判断,动态加载类
2. 反射机制的应用场景
我们平时的项目开发过程中,基本上很少会直接使用到反射机制,但这不能说明反射机制没有用,实际上有很多设计、开发都与反射机制有关,
例如模块化的开发,通过反射去调用对应的字节码;
动态代理设计模式也采用了反射机制,
还有我们日常使用的 Spring/SpringMVC / Mybatis 等框架也大 量使用到了反射机制
3. Java获取反射的三种方法
1.通过new对象实现反射机制
2.通过路径实现反射机制
3.通过类名实现反射机制
public class CollectionTest {
public static void main(String[] args) {
HashSet<String> hashset = new HashSet<>();
hashset.add("世界军事");
hashset.add("兵器知识");
hashset.add("舰船知识");
hashset.add("汉和防务");
Iterator iterator = hashset.iterator();
while (iterator.hasNext()){