自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (3)
  • 收藏
  • 关注

原创 常规算法学习

节点要么是红色要么是黑色根节点必须是黑色叶子节点挂两个空节点(逻辑上)是黑色每个红色节点有两个黑色子节点,推导出一条路径上不能有两个连续的红色节点每条路径上必须有相同数量的黑色节点。

2025-05-28 13:16:12 1252

原创 java源码

如果数组的长度大于QUICKSORT_THRESHOLD(286),就要根据数组的无序程度来决定采用哪种排序算法,无序程度通过将数组划分为不同的有序数组(run)的个数来判定,如果有序序列的个数大于MAX_RUN_COUNT(67),则认为原数组基本无序,则使用双轴快速排序,如果有序序列的个数小于MAX_RUN_COUNT(67),则认为原数组基本有序,则使用归并排序。(leftmost代表是不是数组的最左面的部分,不过是最左面的部分就不能使用成对插入排序,可能会出现数组越界的情况)

2025-05-28 13:00:15 1116

原创 JSON的序列化与反序列化

这个属性就是通过getFirstName()获取firstName属性,并且序列化这个属性对应的值为j,即通过getFirstName()方法得到的。所以在JSON序列化的时候,尽量不要使用getXX()、isXX()定义方法【除了直接获取属性值】,可以修改为fetchXXX()。通过结果可以看出,如果没有定义getXX() isXX()方法,则会获取类的public属性作为序列化的属性。这里看下阿里的fastjson包下的JSON是怎么获取对象序列化的属性和属性值。2、测试用例和之前的保持一致。

2025-05-26 09:45:00 634

原创 log日志最佳实践

如果默认的toString()方法或者Lombok输出的toString()方法输出的不满足诉求【例如,elk需要严格的json】,要么重写,要么封装到另一个对象中,另一个对象toString()方法进行序列化,例如上述的JSONUtil。通过上面结果可以看出,只要字符串拼接或者是使用占位符,但是对打印对象进行操作都不会出发延迟计算,都是直接计算出结果再执行log日志打印。延迟计算就是只有真正进行日志打印的时候才会计算打印的内容。尤其是日志打印的内容特别的大或者是计算打印的日志内容特别的耗时。

2025-05-25 23:47:59 570

原创 Kubernetes in action-机理

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《Kubernetes in action》的笔记。

2025-05-24 11:47:13 778

原创 Kubernetes in action-配置和应用升级

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《Kubernetes in action》的笔记。

2025-05-19 17:34:08 1074

原创 Kubernetes in action-服务

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《Kubernetes in action》的笔记。

2025-05-12 10:51:06 915

原创 Kubernetes in action-Kubernetes的pod

pod是一组并置的容器,它是k8s最基本的构建模块,一个pod的上会有多个容器【很多时候也是只有一个容器】。当一个pod的有多个容器的时候也都是运行在一个工作节点上,即不会一个pod上的多个容器运行在多个节点上。同一个pod中的容器之间是部分隔离的虽然容器之间通过Linux的命名空间是隔离的,但是有时候我们并不希望单个容器之间是完全隔离的,而是让一个容器组内的容器之间可以共享一部分资源。

2025-04-29 18:32:49 937

原创 Kubernetes in action-初相识

针对于K8s并不会直接处理容器,他的最小处理单元是pod。一个物理机器可以有多个pod;一个pod中可以有多个容器,而多个容器之间运行在同一个网络命名空间,CPU资源共享,但是文件和进程是不同的命名空间,隔离的;一般同一个pod中的多个容器是相关的,例如主容器【业务容器】和sidecar运维容器当然一个容器中也可以运行不止一个进程。

2025-04-25 17:03:31 1158

原创 Redis设计与实现-功能

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《Redis设计与实现》的笔记。

2025-04-10 10:04:47 931

原创 Redis设计与实现-集群

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《Redis设计与实现》的笔记。

2025-04-07 10:25:42 1075

原创 Redis设计与实现-哨兵

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《Redis设计与实现》的笔记哨兵(Sentinel)是Redis的高可用解决方案:由一个或者多个哨兵实例组成的哨兵系统,可以监视任意多个主服务器以及这些主服务器所属下的所有从服务器,并且在被监视的主服务器下线时自动的将从某个服务器升级为新的主服务器,然后将新的主服务器替换已经下线的主服务器继续处理命令请求。

2025-03-29 22:07:04 1116

原创 Redis设计与实现-底层实现

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《Redis设计与实现》的笔记。

2025-03-21 22:43:04 1072

原创 Redis设计与实现-数据持久化

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《Redis设计与实现》的笔记。

2025-03-15 11:14:47 1349

原创 Redis设计与实现-服务器中的数据库

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《Redis设计与实现》的笔记。

2025-03-11 11:36:02 979

原创 Redis设计与实现-数据结构

redis中的字符串都是简单动态字符串(SDS)的形式存在的。不止是set key value的键和字符串值value,连其他数据结构中存储的字符串也是以SDS形式存储,如rpush fruits "apple " “banana”,队列保存的中的"apple " "banana"两个字符串元素也是SDS存储。SDS除了保存字符串以外,还用在缓冲区:AOF缓冲区、客户端输入输出缓冲区。int len;// 字符串的长度(已使用的字节数)int free;// 未使用的字节数(空闲空间)

2025-03-02 22:12:18 1078 1

原创 Redis实战-扩展Redis

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《Redis实战》的笔记。

2025-02-18 20:57:50 863

原创 自动控制视频讲解

视频内容包括但不限于:时域分析、信号流图、结构图绘制、跟轨迹、幅相曲线、稳定裕度、z变换、离散传递函数、数字控制器、稳定判据、相平面法、描述函数法、李雅普诺夫判稳、状态空间表达式、极点配置、可控性和可观性的判别等等。本视频几乎包含了所有《自动控制原理》(胡寿松)所有重点章节。针对于考研都能满足。该视频之前录制是为了辅导考研学生,一直存在百度网盘。复制这段内容打开「百度网盘APP 即可获取」通过百度网盘分享的文件:视频授课。

2025-02-11 23:58:25 240

原创 Redis实战-降低内存使用

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《Redis实战》的笔记本章介绍三种降低能够降低redis内存占用的方法:短结构【高效的表示数据】、分片结构【将一个体积大的结构转换为一系列小体积结构】、打包存储二进制和字节。

2025-02-09 22:06:28 703

原创 Redis实战-数据安全与性能保障

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《Redis实战》的笔记。

2025-01-29 21:45:37 1064

原创 Redis实战-初识Redis

Redis是一个远程内存数据库,它不仅性能强劲,而且还具有复制特性以及为解决问题而生的独一无二的数据模型。Redis提供了5种不同类型的数据结构,各式各样的问题都可以很自然地映射到这些数据结构上:Redis的数据结构致力于帮助用户解决问题,而不会像其他数据库那样,要求用户扭曲问题来适应数据库。

2025-01-19 21:42:42 1382

原创 高性能MySQL-备份与恢复

备份在先。只有已经做了备份才可能恢复,因此在构建系统时,注意力自然会集中在备份上。备份由脚本和任务自动完成。经常不经意地,我们会花些时间调优备份过程。花5分钟来对备份过程做小的调整看起来并不重要,但是你是否天天同样地重视恢复呢?备份是日常任务,但恢复常常发生在危急情形下。因为安全的需要。如果你正在做异地备份,可能需要对备份数据进行加密,或采取其他措施来进行保护。

2024-12-30 11:27:49 806

原创 redis相关问题

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习极客时间的笔记。

2024-12-26 10:53:50 1021

原创 高性能MySQL-复制

复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。它的实现机制可以这样概括,首先在源服务器(source server)上,任何数据修改和数据结构变更的事件 (event)都会被写入日志文件中,然后,副本服务器从源服务器上的日志文件中读取这 些事件并在本地重放执行。这是一个异步处理的过程,也就是说,并不能保证副本服务器 上的数据是最新的。

2024-12-25 20:12:49 1188 6

原创 高性能MySQL-查询性能优化

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《高性能MySQL》的笔记。

2024-12-21 15:08:19 1284

原创 高性能MySQL-创建高性能索引

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《高性能MySQL》的笔记。

2024-12-17 11:48:30 905

原创 Jackson序列化和反序列化的坑

【公司因为团队A序列化到redis,另一个团队B从redis反序列化对象。团队A升级了对象,即增加了对象属性,但是团队B没有升级对象,从而团队A上线之后,团队B反序列化大量错误。在进行Jackson反序列化的时候,如果json中包含了反序列化类中的没有的字段属性,则会报错。即,序列化的版本高反序列化的版本低。在对象上增加注解 @JsonIgnoreProperties(ignoreUnknown = true)

2024-12-13 11:49:57 470

原创 高性能MySQL-Schema设计与管理

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《高性能MySQL》的笔记。

2024-12-11 10:26:04 1442

原创 设计模式-理论基础

如有侵权,请联系~如有错误,也欢迎批评指正~

2024-12-04 11:38:38 989

原创 高性能MySQL-优化服务器设置

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《高性能MySQL》的笔记。

2024-12-04 10:30:34 1565

原创 高性能MySQL-操作系统和硬件优化

如有侵权,请联系~如有错误,也欢迎批评指正~本篇文章大部分是来自学习《高性能MySQL》的笔记。

2024-11-30 12:16:28 1273

原创 高性能MySQL-MySQL架构

Performance schema提供了有关MySQL服务器内部运行的操作上的底层指标。sys chema完全是基于Performance schema上的视图和存储例程组成,只是为了方便,体验流程,如果sys schem找不到想要的数据,可以去Performance schema查询。在MySQL代码中插入探测代码,以获得我们想要了解的信息。用来存储关于程序插桩代码得到的信息。在数据库performance_schema中,有一个表setup_instruments就存储了支持的程序插桩。

2024-11-25 10:12:11 1079

原创 InnoDB 表和页面压缩

由于处理器和缓存的速度比磁盘存储设备快得多,因此许多工作负载都与磁盘绑定。数据压缩可以缩小数据库大小、减少 I/O 并提高吞吐量,但代价是增加 CPU 利用率。InnoDB使用ROW_FORMAT=COMPRESSED创建的表在磁盘可以使用比配置值更小的页面大小innodb_page_size。可以使用CREATE TABLEor ALTER TABLE KEY_BLOCK_SIZE指定压缩的页大小,不同的页面大小要求将表放在文件表空间或通用表空间中,而不是系统表空间中,因为系统表空间无法存储压缩表。

2024-11-18 09:49:37 1108

原创 JUC-阻塞队列

阻塞队列在业务代码中可能较少使用,但是只要喜欢看源码的同学就会发现,阻塞队列使用的很频繁,到处都有它的影子。例如:线程池ThreadPoolExecutor中的工作队列。阻塞队列(BlockingQueue)是 Java 并发包(java.util.concurrent)中的一个重要接口,允许多个线程同时安全地操作队列。它不仅提供了队列的基本操作(如插入、删除、检查元素),还可以在队列满时阻塞插入线程,在队列空时阻塞删除线程。这种机制非常适合用于生产者-消费者问题等多线程场景。

2024-11-15 10:44:07 1453

原创 JUC基础类-AbstractQueuedSynchronizer

AbstractQueuedSynchronizer(抽象队列同步器,简称 AQS)是 Java 并发包中的一个重要类,它为实现基于队列的同步器提供了一个框架。AQS 主要用于构建各种同步机制,比如锁、信号量、读写锁等。它通过一个 FIFO 队列(先进先出)来管理线程的获取和释放同步状态(如锁定状态),从而有效地处理多线程之间的竞争。JUC包下的lock锁子包,以及JUC下的阻塞队列ArrayBlockingQueue、CountDownLatch等等这些常用的类都是基于AQS实现的。

2024-11-14 10:12:36 616

原创 JUC-locks锁

java的并发包【JUC】下面就两个子包,一个是atomic原子包,另一个就是lock锁包。这个包下就提供了三种锁:ReentrantLock【可重入锁】、ReentrantReadWriteLock【可重入读写锁】、StampedLock【更轻量级的读写锁】。这些锁的实现大部分都是基于AbstractQueuedSynchronizer【俗称的AQS,分两篇文章,防止难以消化】类实现的。

2024-11-13 11:45:56 1360

原创 JUC-Atomic原子类

java的并发包【JUC】下面就两个子包,一个是lock锁,另一个就是atomic原子包。基本类型的原子类:AtomicBoolean、AtomicInteger、AtomicLong、AtomicReference等数组的原子类:AtomicIntegerArray、AtomicLongArray支持更高并发的原子类:LongAdder、DoubleAdder在学习之前,我们通过上述发现,为什么没有对浮点数提供原子类,如AtomicFloat、AtomicDouble?

2024-11-11 19:45:17 1183

原创 ExceptionHandler的实践

公司的项目中经常会抛异常,然后就排查为什么会经常有异常,最终通过异常堆栈等信息了解到工程中使用了全局异常捕获,返回的是ModelAndView对象,但是这里指定的view工程上找不到。在全局异常捕获方法【ExceptionHandler】中,如果返回的是ModelAndView,但是view返回一个不存在view,会发生什么?接下来看,为什么会抛异常?

2024-11-08 11:39:19 1069

原创 java动态代理

静态代理和动态代理1、代理模式2、静态代理2.1 定义接口2.2 被代理对象实现2.3 代理对象2.4 客户端3、JDK动态代理3.1 JDK动态代理例子3.1.1 定义接口3.1.2 被代理对象实现3.1.3 实现InvocationHandler接口3.1.4 创建代理对象3.2 动态代理底层原理3.3 查看生成的代理类4、CGLIB4.1 CGLIB的例子4.1.1 定义目标对象4.1.2 自定义方法拦截器4.1.3 使用动态代理4.2 CGLIB原理5、Spring切面5.1 定义注解5.2 定义被

2024-11-07 09:53:59 1112

原创 MyBatis实现原理

首先,您需要定义一个接口,代理将对其进行实现。下面不属于动态代理,定义一个类,封装对象反射执行方法/*** 目标对象*//*** 执行的方法*//*** 方法的参数*//*** 执行目标对象的方法*//*** 具体拦截处理,目标对象封装到Invocation*//*** 插入目标类,创建代理对象*/

2024-11-04 09:43:02 1632

深度学习的总结学习.rar

包含了深度学习的各种网络算法、train tips、概念等等

2021-12-02

机器学习初学者思维导图.xmind

小白学习的几个机器学习算法

2021-12-02

李宏毅深度学习课件.rar

课件完美跟随李宏毅老师的课程

2021-12-02

空空如也

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

TA关注的人

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