自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 从0开始手撕rpc

使用"微内核+可插拔"架构,通过自定义SPI加载机制,支持缓存,动态替代扩展点组件灵活使用设计模式来提高系统可扩展性,如单例模式、工厂模式、建造者模式实现服务调用负载均衡机制,支持轮询、随机、一致性哈希算法,优化调用体验通过自定义通信协议、支持多种序列化方式,同时实现Gzip压缩,提高网络传输效率。实现自定义request - response模型,在异步通信条件下确保消息的请求和响应成功基于自定义starter实现,优化SpringBoot环境下的使用。

2024-09-22 14:08:09 1002

原创 美的集团后端实习面试

直接看JavaGuide的原理就行,没难度为什么使用了Quartz而不是XXL-JOB因为公司的陈年老项目。

2024-12-16 13:07:02 1144 3

原创 JVM学习笔记

加载、连接、初始化、使用、卸载。

2024-10-04 20:43:55 1444 1

原创 深入浅出,从源码搞清Bean的加载过程

创建Spring容器读取配置(或者注解),解析内容,封装到BeanDefinition的实现类中(通过registerBeanDefiniton方法来注册到ConcurrentHashMap中,然后将beanName放到list中方便取出)实例化Bean放到Spring容器中至于一些实例化之类的主要就是BeanPostProcessor了,可以从我的手写rpc项目的文章中找到。

2024-10-04 20:41:19 822

原创 个人提升效率的编程工具汇总

你是否还在为敲代码进入状态时,仍然需要跳转到某一行而被打断,就像是寸止(笑)一样难受,你是否已经被键盘右侧的方向键还需要移动手臂才能碰到感到不解?如果你用惯了yum、apt、npm,如果你苦于搜搜应用时找不到官网(笑),那么你可以尝试使用Scoop这个Windows的包管理工具。至于为什么不推荐emacs,对于后端来说,服务器上的默认编辑器就是Vim,提前,在日常中就尝试练习键位,可以更加方便的服务器上使用。Docker为你解决环境问题,同时可以结合Docker Copose来实现多项目和环境的快速配置。

2024-10-03 11:27:23 452

原创 Spring 循环依赖会出现什么情况? 如何解决?

在Spring项目中我们经常使用 @Autowired或者@Resource去注入Bean,我们称之为依赖。当多个Bean之间存在互相依赖的关系,并且出现了循环调用时,Spring就会找不到依赖的七点,就会死循环直到抛出异常。例如:A依赖B,B依赖C,C依赖A,三者必须在依赖的类初始化之后才会初始化自己,从而出现死循环。

2024-10-03 11:05:30 624

原创 Netty源码初探

本人在尝试使用Netty来手写RPC时,学习到了很多Netty知识,在此进行一些记录。

2024-10-02 17:45:29 880

原创 深入浅出线程池——从源码层面解析线程池

Executor、Executors、ExecutorService、AbstractExecutorService、ThreadPoolExecutor、ForkJoinPool之间的关系。鄙人在公司实习时,看见了公司的自定义线程池结合CompletableFuture异步获取结果,对线程池的实现感兴趣,于是花了些时间来解决来弄清楚线程池的执行原理。先简单介绍一下之间的关系,Executor是最底层的定义,ExecutorService继承了Executor。

2024-10-02 17:44:08 540

原创 Future & CompletableFuture深入解析

让我们首先关注它的定义...可以发现奥秘就在这个接口中,用于标识执行过程中的一个步骤(Stage),从而实现了服务编排Completion是定义在CompletableFuture里的。

2024-10-01 11:34:13 1015

原创 Java中常用的线程工具(JUC)

Wait释放的锁是写在Java对象头中,所以是写在Object中而非当前线程CountDownLatch 是通过一个计数器来实现的,计数器的初始值就是线程的数量,每当一个线程执行完毕之后,计数器的值就-1,然后在闭锁上等待的线程就可以恢复工作了。用于等待多个线程完成一个整体的前提任务实例:在进行业务之前将两个数据库中的数据进行同步(非集群的数据库)// 这里是同步数据库1的代码// 这里是同步数据库2的代码}).start();}).start();

2024-10-01 11:31:27 1007

原创 HashMap源码分析与常见八股

当链表的长度大于TREEIFY_THRESHOLD(默认为8)时会开始转化,同时要判断Node数组的个数是否大于MIN_TREEIFY_CAPACITY(默认64),如果小于就会先进行扩容,而不是转化,如果大于就直接转化为红黑树。时,会转化,如果当前数组长度小于64就学会先进行数组扩容,否则就转化为红黑树,默认大小为16,每次扩容2倍。拉链法就是使用一个链表数组,数组中的每一格都是一个链表,如果遇见哈希冲突,则将冲突的值加到链表中。可能是一个空元素,也可能是链表已存在,所以要区别对待。

2024-09-30 11:02:04 1896

原创 ThreadLocal原理解析

ThreadLocal实际起作用的是ThreadLocal内部的ThreadLocalMap类,对于每一个Tread,都有一个ThreadLocalMap属性,从而实现线程隔离,然后set的时候就通过获取当前线程然后给他的ThreadLcoalMap属性添加值。因为ThreadLocalMap的key是Thread,如果像普通的key-value的定义,只要线程未销毁。就会一直存在,所以使用弱引用就可以在不存在强引用的时候就将这个销毁。

2024-09-30 11:00:43 220

原创 MySQL中NULL值是否会影响索引的使用

🐭🐭在面试的时候被问到NULL值是否会走索引的时候,感到有点不理解,于是事后就有了这篇文章问题:为name建立索引,name可以为空是否会使用索引?生活会拷打每一个做事不认真的人😭。

2024-09-29 22:35:25 895

原创 深入浅出MySQL

mysql的一些底层数据结构的学习心得

2024-09-29 22:32:09 1574

原创 深入浅出动态代理

面试中经常被问到动态代理相关内容,每次都答得不够完美,又因近期在尝试手写RPC框架,了解到不少的动态代理相关的内容,顺道总结一下,于是就有了这篇文章。

2024-09-23 22:39:24 511

原创 Github学生包/学生认证申请那些事/Github Copliot免费使用

一定要有耐心,不挂梯子的话,github的访问基本上是时有时无的,所以要有耐心,多试试,过几天再试试,推荐在学校里申请,或者使用学校的vpn访问网站祝通过!!!

2024-09-23 22:35:16 1146

原创 工作室招新题解

双指针指向左边第一个要交换的和右边第一个要交换的字符第一次交换的是{n-1,n} 和{2n-1,2n}第二次{n-1,n}和{2n-2,2n-1}以此类推,可以得到,左边交换的下标往左移1位和右边下标往左移2位是轮流的,那么就可以用一个cnt来记录次数,实现反复移动但是当左界下标移动到4的时候,就不一样了,看不出来规律,直接按样例来进行移动下标了感觉是这里面最难的了。

2023-06-11 15:16:52 210 1

原创 C++ function + Lambda表达式实现函数内置函数

Lamda表达式和function 实现内置匿名函数的二三事

2023-06-01 21:04:31 511 1

原创 LeetCode第 347 场周赛 6455.使所有字符相等的最小成本

4.因为每次反转之前已经保证了一部分连续的字串已经相等,所以即使继续反转这部分字串仍然相等。-> 11010 或者 00101。3.从前往后或者从后往前遍历,字符串的个数从0到n-1即可保证所有的字符都相等。反转左侧 反转右侧。2.反转时两种方式都能使得相邻的字符相等,选择代价最小的即可。1.遇见相邻的两个字符不相等就需要反转。例如:01010 从前往后遍历。

2023-05-28 13:57:17 164 1

原创 C++ 优先队列(priority_queue)自定义比较pair类型的方法

第一个参数为所要存储的数据类型,第二个是容器类型,默认为vector,但不能是list,第三个为自定义比较方法。优先级越大的在queue中排的越往后,因为取的是top。原理:自定义类来重载“( )”运算符。是遇见使用pair和优先队列的问题。

2023-04-01 16:54:02 1197

原创 HNUST2022新生赛 “嘉嘉的序列游戏”

新生赛题解,个人感觉思路蛮清晰得

2023-03-06 21:58:49 142

原创 宇宙总统(数据极大的比较)

学习记录,位数大的数据处理

2022-12-03 09:48:55 152

原创 进制转化(16进制以内任意转化)

c++自定义函数进行进制转化

2022-12-03 09:21:44 199 1

原创 hnust oj 2204 卖水果

记录学习过程

2022-11-25 22:45:54 257

原创 hnustoj 2108 湖南科技大学2019年大学生计算机程序设计新生赛

一些简单的记录

2022-11-19 23:43:51 501

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除