当前位置: 首页 > news >正文

2025年4月15日 百度一面 面经

目录

1. 代理相关 从静态代理到动态代理

2. cglib可以代理被final修饰的类吗,为什么

3. JVM 体系结构

4. 垃圾回收算法

5. 什么是注解 如何使用 底层原理

6. synchronized和reentrantlock

7. 讲一下你项目中 redis的分布式锁 与java自带的锁有啥区别

8. post 请求和 get 请求的区别

9. IOC 和 AOP 的使用

10. 过滤器和拦截器

11. 如果现在要写一个拦截器去拦截访问路径 你会怎么设计

12. redis 数据结构

13. redis 哨兵以及他的优点

14. 算法 力扣 7 整数翻转 中等题

总结


1. 代理相关 从静态代理到动态代理

对目标行为的一种增强 前增强 后增强

静态代理

接口 定义规则

实现了接口的具体类

代理类 代理类生成具体类对象

然后继承了代理类

重写方法

使用具体类对象调用方法 并且加上自己逻辑

我们只要使用代理类对象就能实现代理

动态代理分为 JDK 动态代理和 Cglib 动态代理

JDK 动态代理主要是利用了 Proxy 类里面的 newProxyInstance(不会读 说的新的代理单例) 方法获取代理单例

传入参数 类加载器 实现接口 代理对象自定义类

代理对象自定义类实现了一个叫调用处理的接口(InvocationHandler)

然后重写 invoke 方法

原理实际上是将方法传到了 InvocationHandler 的 invoke 方法里面去

之后重写逻辑即可

cglib 动态代理也是如同 jdk 动态代理一样 (这边没说) 首先用工厂模式创建一个 Factory

定义一个方法获取代理对象 传入 Object

然后创建增强对象

传入类加载器

代理类

拦截器

拦截器同样是实现接口 我们在里面重写方法(这边说累了 就没说 )

最后总结

JDK 动态代理使用较多 但是限制是只能代理接口类

最后又想了想 静态代理是编译的时候就进入机器的 可拓展性很差

动态代理允许在运行的时候动态编译... (忘了)

(答 太多 就虚了 疯狂遗忘+口误)

2. cglib可以代理被final修饰的类吗,为什么

cglib动态代理是原理靠继承实现的

相当于让父类继承子类 然后优先调用子类的方法

面试官说我答的很含糊 问我有没有看过源码

我讲了一下cglib 动态代理的流程

工厂模式创建一个 factory 对象 然后创建一个动态代理增强类 Enhancer 对象

通过增强类的 set 方法传入参数

第一个参数 利用反射得到的类加载器

第二个参数 被代理类

第三个参数 方法拦截器 使用的一个命名为回调方法的东西

最后返回这个 代理类对象的 create() 方法

其中这个方法拦截器 实现了 MethodInterceptor 接口

重写了 intercept 方法

添加了自己的操作 与 jdk 动态代理的 invoke 方法相似

面试官又问我如何体现继承的

我说我看过源码 方法拦截器是传到一个数组里面去了 我看不懂源码 (汗流浃背)

3. JVM 体系结构

只记得类加载器

讲了一会 巴拉巴拉 八股吟唱 啦啦啦

加载 连接 初始化 使用 卸载

连接又分为验证 准备 解析

还卡了好几下

让我别讲了

相关文章:

  • MongoDB入门与安装指南
  • 递归查询的应用
  • Python自动化处理奖金分摊:基于连续空值的智能分配算法升级
  • 树莓派超全系列教程文档--(26)在 Raspberry Pi 上配置热点
  • html页面打开后中文乱码
  • 【树莓派Pico FreeRTOS】-事件标志(Event Flags)与事件组(Event Groups)
  • 【SpringBoot】深入解析自定义拦截器、注册配置拦截器、拦截路径方法及常见拦截路径、排除拦截路径、拦截器的执行流程
  • 通过人类和机器人演示进行联合逆向和正向动力学的机器人训练
  • 开源智慧巡检——无人机油田AI视频监控的未来之力
  • 科普:想想神经网络是参数模型还是非参数模型
  • 首次打蓝桥杯总结(c/c++B组)
  • 无人机的群体协同与集群控制技术要点!
  • DIB:Drone in Box- 室内外场景无人机无人化自主巡检技术方案
  • FPAG IP核调用小练习
  • 无人机自主导航与路径规划技术要点!
  • 6.DJI-PSDK:psdk订阅无人机高度/速度/GPS/RTK/时间/经纬度等消息及问题解决
  • Playwright与Selenium详细对比及Playwright快速入门
  • Hadoop:大数据时代的基石
  • A008-Web 功能测试 – 咪咕音乐UI自动化,selenium
  • uniapp的通用页面及组件基本封装
  • 俄乌交换205名被俘人员,俄方人员已抵达白俄罗斯
  • 86岁书画家、美术教育家、吴昌硕嫡裔曾孙吴民先离世
  • 观察|“离境退税”撬动上海“五一”假期入境消费
  • 贵州省黔西市发生载人游船侧翻事故
  • 看着不爽就滚蛋!郑州大学第一附属医院一科室公众号被曝运营人员辱骂他人
  • 年轻人能为“老有意思”做点什么