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。
- binlog(二进制日志)
binlog是MySQL的归档日志,记录了所有的数据库更新操作,包括数据增删改等。binlog文件可以被用来实现数据备份、数据同步等功能。binlog文件记录的是SQL语句的逻辑操作,而不是具体的数据内容,因此它相对较小。
- redolog(重做日志)
redolog也是MySQL中的一种日志,记录了MySQL引擎执行的所有

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

被折叠的 条评论
为什么被折叠?



