- 博客(18)
- 收藏
- 关注
原创 Bug记录:解决canal配合rocketMQ启动时报错
从log来看判断是CanalMQProducer这个类无法实例化,于是开始检查canal中关于rocketMQ的设置,最后发现原来是需要把plugin文件夹中的jar包拷到lib文件夹下,问题解决。
2024-01-20 16:49:02
1096
1
原创 策略模式结合模板方法实现不同登录方式
策略模式是一种行为模式,它将对象和行为分开了,行为变成了一个接口以及这个行为的多个实现。策略模式可以让这些行为之间进行切换。选择器抽象策略策略实例。其中选择器selector又被称为上下文context,其作用为通过不同的标识来获取对应的策略实例。策略实例就是封装不同算法的实例对象,而抽象策略就是策略实例的顶层接口。
2023-09-10 10:42:15
466
原创 过滤器(filter)和拦截器(Interceptor)的区别以及使用场景
过滤器实现的是 javax.servlet.Filter 接口,而这个接口是在Servlet规范中定义的,也就是说过滤器Filter 的使用要依赖于Tomcat等容器,导致它只能在web程序中使用。拦截器 Interceptor 是在请求进入servlet后,在进入Controller之前进行预处理的,Controller 中渲染了对应的视图之后请求结束。过滤器和拦截器 底层实现方式不相同,过滤器是基于函数回调的,拦截器则是基于Java的反射机制(动态代理)实现的。过滤器 和 拦截器的触发时机不同。
2023-09-04 16:28:09
4552
原创 Java如何动态代理
Java的动态代理是一种在运行时动态生成代理对象的技术,使得代理对象能够在运行时动态地处理被代理对象的方法调用。它允许您创建一个实现给定接口的代理对象,该代理对象会拦截对接口方法的调用,并将调用传递给实际的实现对象。动态代理是基于Java反射机制实现的,它允许您在运行时创建代理对象,并动态地为代理对象添加方法和行为。代理对象可以拦截方法调用并执行额外的逻辑,例如在方法调用前后添加日志记录、性能统计、安全检查等。
2023-08-01 00:24:43
70
原创 反转链表II 两种解法
链表的操作问题,一般而言面试(机试)的时候不允许我们修改节点的值,而只能修改节点的指向操作。所以这其中一些链表的常用技巧我们应该掌握,反转链表很好地体现了链表的一些技巧,这里记录一下反转链表II的递归和迭代两种解法。
2023-07-21 13:10:29
285
原创 Java面向对象基础之继承性
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
2023-03-20 20:56:23
144
原创 Java面向对象基础之封装性
利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节,但可以通过对象对外提供的接口来访问该对象。(即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。: 对同一包内的类和所有子类可见。使用对象:变量、方法。使用对象:类、接口、变量、方法。: 在同一类内可见。使用对象:变量、方法。封装性主要通过权限修饰符来实现。
2023-03-20 00:24:30
110
原创 图解KMP算法,带你彻底吃透KMP
KMP算法一直是一个比较难以理解的算法,本篇文章主要根据《大话数据结构》中关于KMP算法的讲解,结合自己的思考,对于KMP算法进行一个比较详细的解释。
2023-01-23 18:57:44
96025
58
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人