摘要: 下图是我搜索“Spring Bean生命周期”找到的图片,来自文章——Spring Bean的生命周期 下面,我们从AbstractAutowireCapableBeanFactory的源码中来分析这张图的各个阶段到底是怎么执行的。BeanFactory的基本源码解读在Spring BeanFact 阅读全文
posted @ 2022-11-03 22:58 DiligentCoder 阅读(397) 评论(0) 推荐(1) 编辑
摘要: https://edu.aliyun.com/trainingcamp/354200?spm=5176.20128342.J_6302206100.2.72dc7ba22TqvFW 阅读全文
posted @ 2024-03-28 16:51 DiligentCoder 阅读(3) 评论(0) 推荐(0) 编辑
摘要: //基础查询 db.orderSlic.find(); //根据ID查询 db.orderSlic.find( { _id: 54708407 } ); //范围查询 db.orderSlic.find( { "_id": { "$gte": 54708407, "$lte": 54708409 } 阅读全文
posted @ 2024-02-01 18:07 DiligentCoder 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 在Java中,使用@NotNull注解时,可以指定多个参数的顺序。为了指定顺序,你可以使用@GroupSequence注解。 首先,为每个需要校验的参数定义一个接口,并在接口上添加@GroupSequence注解,指定参数的校验顺序。然后,在每个参数上使用@NotNull注解。 下面是一个示例代码: 阅读全文
posted @ 2023-09-19 10:37 DiligentCoder 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 微服务注册后,在注册中心的注册表结构是一个map: ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>> registry,假如一个order服务部署了三台机器,那么Map的第一个key为服务名称,第二个map的key是实例编号(in 阅读全文
posted @ 2023-02-03 21:37 DiligentCoder 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 第一次GC: 在不断创建对象的过程中,当Eden区域被占满,此时会开始做Young GC也叫Minor GC 1)第一次GC时Survivous中S0区和S1区都为空,将其中一个作为To Survivous(用来存储Eden区域执行GC后不能被回收的对象)。比如:将S0作为To Survivous, 阅读全文
posted @ 2023-02-03 18:41 DiligentCoder 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 前言 相信大部分面试都是说用 Redis 去实现分布式锁,用 Zookeeper 实现分布式锁相对而言遇到的较少,最近在整理之前的面经答案,因此特意写篇博客解释一下。 实现一把分布式锁通常有很多方法,比较常见的有 redis 和 Zookeeper。相信大家对 redis 实现分布式锁已经非常了解, 阅读全文
posted @ 2023-01-14 22:37 DiligentCoder 阅读(540) 评论(1) 推荐(3) 编辑
摘要: 全量同步与增量同步的区别 全量同步:就是每天定时(避开高峰期)或者采用一个周期实现将数据拷贝到一个地方也就是Rdb存储。 增量同步:比如采用对行为的操作实现对数据的同步,也就是AOF。 全量与增量的比较:增量同步比全量同步更加消耗服务器的内存,但是能够更加的保证数据的同步。 RDB与AOF实现持久化 阅读全文
posted @ 2023-01-13 23:04 DiligentCoder 阅读(312) 评论(0) 推荐(2) 编辑
摘要: 文章目录 1.什么是ThreadLocal?2.ThreadLocal基本用法3.ThreadLocal的应用场景4.ThreadLocal底层原理5.强软弱引用之间的区别5.1强引用5.2软引用5.3弱引用5.4虚引用 6.ThreadLocal内存泄漏问题7.如何防止ThreadLocal内存泄 阅读全文
posted @ 2023-01-09 22:56 DiligentCoder 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 一、ThreadLocal概述 ThreadLocal是一个线程的本地变量,也就意味着这个变量是线程独有的,是不能与其他线程共享的。这样就可以避免资源竞争带来的多线程的问题。但是,这种解决多线程安全问题的方式和加锁方式(synchronized、Lock) 是有本质的区别的,区别如下所示: 1> 关 阅读全文
posted @ 2023-01-09 21:46 DiligentCoder 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 一、拷贝的引入(1)、引用拷贝创建一个指向对象的引用变量的拷贝。 Teacher teacher = new Teacher("Taylor",26); Teacher otherteacher = teacher; System.out.println(teacher); System.out.p 阅读全文
posted @ 2023-01-09 20:41 DiligentCoder 阅读(405) 评论(1) 推荐(3) 编辑