- 博客(10)
- 收藏
- 关注
原创 记一次线上redis报错(JedisExhaustedPoolException: Could not get a resource since the pool is exhausted)
错误详情redis.clients.jedis.exceptions.JedisExhaustedPoolException: Could not get a resource since the pool is exhaustedat redis.clients.jedis.util.Pool.getResource(Pool.java:78)at redis.clients.jedis.ShardedJedisPool.getResource(ShardedJedisPool.java:42)面
2022-05-25 00:04:48
1542
原创 23种设计模式之适配器模式
适配器模式理解适配器模式不在是一种创建型设计模式,它是一种结构性模式。是把一个类的接口转换成客户希望的另一个接口。就比如usb扩展坞。使得原来不兼容的可以兼容在一起。适配器模式分为两种类型类适配器模式适配器直接去继承适配者类对象适配器模式适配器中保有一个适配者类一般来说都是使用对象适配器,因为如果去使用继承,那对于适配器来说,其实它已经不算是适配器了,而是一种适配者,并且它也不够通用。// 适配者public class Wire { public void request()
2022-05-02 18:52:56
279
原创 23种设计模式之建造者模式
建造者模式它与工厂模式一样,也是一种创建型设计模式。不同点在于:它创建的是一种产品,一个复杂的对象。而工厂模式它创建的是一系列产品。它将一个对象的构建与表示分离。在代码中可以详见stringbuilder,它就是典型的构建者模式。简单理解构建模式// 这里可能会有人疑惑 为什么不用接口,而用抽象类(个人理解:接口是对于动作的抽象,而抽象类可以是对对象的抽象)public abstract class Builder { abstract Builder setA(String msg);
2022-05-02 17:35:30
331
原创 23中设计模式之工厂模式
工厂模式(不要为了设计模式而设计模式)工厂模式的意义在于:建造和使用相分离。让子类自己去决定要使用哪一个工厂实现类。工厂模式主要分为3种简单工厂模式(又叫做静态工厂模式)工厂方法模式抽象工厂方法(在设计模式中它与工厂模式是同级的,当做另一个模式,本质上是工厂的工厂)简单工厂模式其实就是抽象出一个具体的工厂类,然后需要啥就从这个静态的工厂类中获得就好。但是它有一个不好的点就是违反了开闭原则,如果你需要新加一种产品,你就要改动这个工厂的代码。并且所有的获取对象都是在这个工厂之中,会造成代码臃肿
2022-05-02 16:34:38
98
原创 剑指 Offer 35. 复杂链表的复制hashmap解法
题目描述请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。看完官方解法(个人想法)官方解法是用递归调用去不断的创建next节点和random节点,我看完以后就开始自己写,但是写完以后没有用到hashmap结构,也忘记了官方为啥要用到hashmap,然后调用以后爆栈了 if (head == null) { return null;
2022-04-04 21:38:39
87
原创 对于MySQL使用中的一些坑
1、mod_time字段自动更新在工作中经常会使用到mod_time字段,用来表示记录的更新,但是最近脑子秀逗了,以为把字段的默认值修改为current_timestamp,就可以将字段更新,这是错误的,如果要设置字段的更新:1、把字段设置为timestamp类型2、把默认值设置为current_timestamp3、设置属性为 on update current_timestamp4、如果字段未创建直接在建表语句中在类型后面加即可5、如果表已经建立,可以:用修改字段语句:alter table
2022-04-02 08:45:46
350
原创 自定义logback中appender使用@resource注入为空的情况
1、在自定义appender时,注入组件发现为nullpublic class WeChatAppender extends UnsynchronizedAppenderBase<ILoggingEvent> { @Resource xxxService xxxservice; // 代码运行时为null}后来加入了一个构造方法,打了断点,发现他并不是在容器初始化之后进行类的初始化的,所以他自然注入组件就找不到了。其实自己想一想,既然是日志处理器,那么它必然是需要在spring启动的
2022-03-17 18:05:34
864
2
原创 java中对于线程中断的理解
对于线程中断的理解许多小白包括我自己对于java中线程中断一开始的理解是,当一个线程收到中断的时候,它自己就立即中断了,其实这是大错特错的,因为线程在收到interrupt方法的时候,只是一种线程通信,另一个线程告诉该线程你被中断了,但是这个线程是自己去决定在你收到中断信号的处理,我可以继续执行我原来的逻辑,也可以执行中断的逻辑。理论验证public class ThreadDemo extends Thread { // 继承线程一定要重写run方法 @Override p
2022-03-06 23:17:21
324
原创 LRU算法初识
LRU算法初识(小白的第一篇优快云)1、废话不多说直接上我的垃圾屎山public class ShouLuLru { // 双链表node节点 class Node { private int key; private int value; private Node pre; private Node next; public Node(int key, int value) { th
2022-02-19 22:38:25
388
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人