自定义博客皮肤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)
  • 收藏
  • 关注

原创 CompletableFuture

类架构说明接口CompletionStage代表异步计算过程中的某一个阶段,一个阶段完成以后可能会触发另外一个阶段。一个阶段的执行可能是被单个阶段的完成触发,也可能是由多个阶段一起触发类CompletableFuture提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,并且提供了函数式编程的能力,可以通过回调的方式处理计算结果,也提供了转换和组合CompletableFuture的方法。

2024-08-30 15:57:45 419

原创 三.缓存双写一致性策略

如果业务层要求必须读取一致性的数据,那么我们就需要在更新数据库时,先在Redis缓存客户端暂停并发读请求,等数据库更新完、缓存值删除后,再读取数据,从而保证数据一致性,这是理论可以达到的效果,但实际,不推荐,因为真实生产环境中,分布式下很难做到实时一致性,一般都是最终一致性,请大家参考。也就是说如果数据库写成功,缓存更新失败,那么只要到达过期时间,则后面的读请求自然会从数据库中读取新值然后回填缓存,达到一致性,切记,要以mysql的数据库写入库为准。//4 查询mysql拿数据(mysql默认有数据)

2024-08-26 23:00:59 599

原创 Sentinel

Sentinel的特征丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。

2024-08-22 22:08:54 660

原创 24.区间dp-上

动态规划常见类型题目

2024-08-06 09:27:56 837

原创 23.分组背包和完全背包(动态规划专题)

常见完全背包和分组背包算法求解

2024-07-31 14:38:01 620

原创 01背包基本算法

01背包模板算法题

2024-07-30 11:48:01 1041

原创 【无标题】

递增子序列问题,主要是搞明白二分

2024-07-28 14:50:24 986

原创 字数组最大累加和问题

每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,- 窃取下标 0 和 2 处的房屋,窃取能力为 max(nums[0], nums[2]) = 5。- 窃取下标 0 和 3 处的房屋,窃取能力为 max(nums[0], nums[3]) = 9。- 窃取下标 1 和 3 处的房屋,窃取能力为 max(nums[1], nums[3]) = 9。解释:子数组 [1, 2], [2, 6], [7, 5] 对应的起始下标为 [0, 3, 5]。

2024-07-26 10:08:57 409

原创 20.字数组最大累加和问题(上)

算法数组累加和

2024-07-25 09:39:08 607

原创 19.三维动态规划

三维动态规划例题,大部分都可以改写dp,但是比较浪费时间

2024-07-24 23:08:35 651

原创 Rocketmq基础(从0开始搭建包括安装,后续更新进阶包括底层核心源码)

rocketmq入门部分

2024-07-24 23:02:12 1101

原创 动态规划(二维动态规划) 动态规划专题

二维动态规划汇总

2024-07-17 14:23:37 837

原创 动态规划专题(一维动态规划)

算法联系

2024-07-16 17:46:37 1108

原创 lombook常用注解解析

lombook注解

2024-07-16 17:43:50 933

原创 SpringBoot源码解析第一部分(springboot启动流程源码解析)

springboot启动流程源码解析

2024-07-08 13:06:31 849

原创 JVM垃圾回收

垃圾回收器的组合关系虽然很多,但是针对几个特定的版本,比较好的组合选择如下:JDK8及之前:ParNew + CMS(关注暂停时间)、Parallel Scavenge + Parallel Old (关注吞吐量)、 G1(JDK8之前不建议,较大堆并且关注暂停时间)JDK9之后:G1(默认)从JDK9之后,由于G1日趋成熟,JDK默认的垃圾回收器已经修改为G1,所以强烈建议在生产环境上使用G1。G1的实现原理将在《原理篇》中介绍,更多前沿技术ZGC、GraalVM将在《高级篇》中介绍。

2024-07-01 20:23:47 672

原创 Spring源码解析(二)AOP底层两种动态代理

AOP动态代理的底层实现

2024-07-01 20:16:22 850

原创 JVM基础 类加载器(重点:双亲委派机制,JVM组成)

类加载器(ClassLoader)是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术,类加载器只参与加载过程中的字节码获取并加载到内存这一部分。类加载器会通过二进制流的方式获取到字节码文件的内容,接下来将获取到的数据交给Java虚拟机,虚拟机会在方法区和堆上生成对应的对象保存字节码信息。一个Tomcat程序中是可以运行多个Web应用的,如果这两个应用中出现了相同限定名的类,比如Servlet类,Tomcat要保证这两个类都能加载并且它们应该是不同的类。

2024-06-30 01:30:20 407

原创 单调栈常用算法

单调栈算法

2024-06-27 23:54:22 903

原创 spring源码解析ioc部分,基础完结,后续更新进阶

spring底层解析

2024-06-27 23:51:58 502

原创 二分查找算法练习和二分答案法算法联系

二分查找和二分答案法

2024-06-26 23:50:50 1244

原创 算法:双指针

双指针常见使用

2024-06-25 01:30:19 255

原创 算法:位运算

位运算的骚操作

2024-06-25 01:28:27 297

原创 自己总结的Spring源码解析(1)后续还会更新

/ System.out.println("是否加了 @Component 派生:" + annotationMetadata.hasMetaAnnotation(Component.class.getName()));// System.out.println("是否加了 @Component:" + annotationMetadata.hasAnnotation(Component.class.getName()));// ${} 的解析器。// 执行依赖注入 @Autowired @Value。

2024-06-25 01:24:35 368

原创 redis为什么这么快?redis是单线程还这么快?redis多线程

I/O 的读和写本身是堵塞的,比如当 socket 中有数据时,Redis 会通过调用先将数据从内核态空间拷贝到用户态空间,再交给 Redis 调用,而这个拷贝的过程就是阻塞的,当数据量越大时拷贝所需要的时间就越多,而这些操作都是基于单线程完成的。

2024-05-28 23:23:23 554

空空如也

空空如也

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

TA关注的人

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