面试题30天打卡-day03

文章探讨了JDK动态代理和CGLIB动态代理的实现方式和应用场景,强调了它们在接口代理和类代理上的差异。同时,解释了MySQL的binlog、redolog和undolog日志的作用,以及它们在数据一致性和恢复中的角色。最后,介绍了Spring框架的核心功能和使用Spring带来的简化开发、可测试性等优势。

1、JDK 动态代理和 CGLIB 动态代理的区别是什么?

DK动态代理和CGLIB动态代理是Java中常用的两种代理模式实现方式,它们的主要区别在于代理对象的生成方式和应用场景。

JDK动态代理是基于Java反射机制实现的,在运行时动态生成代理类,在代理类中通过反射调用委托类的方法。JDK动态代理要求委托类必须实现一个或多个接口,代理对象实现了委托接口,具有与委托类相同的方法签名。JDK动态代理适合对单个接口进行代理。

CGLIB动态代理是通过在运行时动态生成子类的方式实现的,代理对象继承了委托类,重写了委托类的非final方法,并在方法中调用委托类的方法。CGLIB动态代理不要求委托类实现接口,代理对象具有与委托类相同的方法。CGLIB动态代理适合对类进行代理,特别是对没有实现接口的类进行代理。

JDK动态代理和CGLIB动态代理都有各自的优缺点,应根据具体情况选择合适的代理方式。JDK动态代理实现简单,代码清晰,但要求委托类实现接口;CGLIB动态代理可以代理非接口类,但生成的代理对象的性能相对较低,生成代理类的时间也比JDK动态代理长。

2、MySQL 日志有了解过吗?binlog、redolog、undolog 分别有什么作用、有什么区别?

MySQL是一个关系型数据库管理系统,具有许多复杂的机制来确保数据的一致性、可靠性和安全性。其中,MySQL日志机制是实现这些目标的重要手段之一,常用的日志包括binlog、redolog和undolog。

  1. binlog(二进制日志)

binlog是MySQL的归档日志,记录了所有的数据库更新操作,包括数据增删改等。binlog文件可以被用来实现数据备份、数据同步等功能。binlog文件记录的是SQL语句的逻辑操作,而不是具体的数据内容,因此它相对较小。

  1. redolog(重做日志)

redolog也是MySQL中的一种日志,记录了MySQL引擎执行的所有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫十二懿

你的支持就是写文章的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值