面试必备:《Java 最常见 200+ 面试题全解析》(四)反射部分

文章目录

    • 一、Java 基础部分
    • 二、容器部分
    • 三、多线程部分
    • 四、反射部分
          • 57.什么是反射?
          • 58.什么是 java 序列化?什么情况下需要序列化?
          • 59.动态代理是什么?有哪些应用?
          • 60.怎么实现动态代理?

一、Java 基础部分

链接地址

二、容器部分

链接地址

三、多线程部分

链接地址

四、反射部分

57.什么是反射?

链接地址

58.什么是 java 序列化?什么情况下需要序列化?

链接地址

59.动态代理是什么?有哪些应用?

动态代理:当想要给实现了某个接口的类中的方法,加一些额外的处理。比如说加日志,加事务等。可以给这个类创建一个代理,故名思议就是创建一个新的类,这个类不仅包含原来类方法的功能,而且还在原来的基础上添加了额外处理的新类。这个代理类并不是定义好的,是动态生成的。具有解耦意义,灵活,扩展性强。

动态代理的应用:Spring的AOP,加事务,加权限,加日志。

60.怎么实现动态代理?

动态代理实现:首先必须定义一个接口,还要有一个InvocationHandler(将实现接口的类的对象传递给它)处理类。再有一个工具类Proxy(习惯性将其称为代理类,因为调用他的newInstance()可以产生代理对象,其实他只是一个产生代理对象的工具类)。利用到InvocationHandler,拼接代理类源码,将其编译生成代理类的二进制码,利用加载器加载,并将其实例化产生代理对象,最后返回。

你可能感兴趣的:(Java面试题)