- 博客(127)
- 收藏
- 关注
原创 数字世界的“唯一身份证“——单例模式
想象一家跨国集团只能有一位CEO,所有重大决策必须通过他签署。。无论市场部要预算,还是研发部要资源,都必须通过这位唯一的CEO,避免多头决策导致管理混乱。
2025-04-02 23:55:27
980
原创 告别通勤选择困难症——策略模式
当你在编写充满条件判断的业务代码时,不妨思考:这些逻辑是否可以被抽象为一系列可插拔的策略对象?这正是策略模式给我们的最佳实践启示。
2025-04-01 23:16:17
533
原创 设计模式中的“万能转换器”——适配器模式
通过HDMI场景的深入解析可见,适配器模式是接口冲突的终极解决方案。无论是代码中的协议转换,还是你桌上那根“救命”的Type-C转HDMI线,都在默默践行这一设计哲学。
2025-03-31 22:56:33
797
原创 设计模式六大原则,带你看懂编程的底层逻辑
六大原则本质是解耦与抽象单一职责与接口隔离控制代码粒度,避免“万能类”开闭原则与依赖倒置通过抽象提升扩展性,适应需求变化里氏替换与迪米特法则确保协作安全,降低耦合风险推荐结合《漫画设计模式》中的趣味案例进一步理解,将抽象原则具象化为可落地的代码设计技巧。
2025-03-30 23:14:45
767
原创 Java的继承:方法;属性?
最近公司有个需求需要用方法模板模式改造一部分冗余的代码,因为涉及到Java中父、子类之间的继承与重写,所有来记录一下这里抛出一个问题:前提父类声明的子类对象(例如父类 aa = new 子类()如果aa调用重写的方法调用的是 父类的?还是子类的?如果aa调用重写的属性调用的是 父类的?还是子类的?结论:调用方法是子类重写的方法。而属性是父类的属性。
2025-03-18 21:25:29
604
1
原创 计算机网络八股文
HTTP1.0 其实也可以强制开启长链接,例如接受Connection: keep-alive 这个字段,但是,这不是标准字段,不同实现的行为可能不一致,因此不是根本的解决办法。这种方式就好像我们打电话的时候,只能说一件事儿一样,说完之后就要挂断,想要说另外一件事儿的时候就要重新拨打电话。发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接。我们知道TCP连接的建立需要三次握手,是很耗费时间的一个过程。,该功能是由「应用程序」实现的,,该功能是由「内核」实现的,
2024-04-15 11:23:45
820
原创 MyBatis相关面试题总结
Mybatis是一个流行的ORM(对象关系映射)框架,可以将Java对象映射到关系型数据库中的表中。使用Mybatis可以编写更简洁的SQL语句,并且可以使用动态SQL和参数映射来进行高效和灵活的数据操作。
2024-04-15 11:23:30
584
原创 Java相关面试题总结
字节流以字节为单位进行读写操作,而字符流以字符为单位进行读写操作。字节流主要由InputStream和OutputStream两个抽象类及其子类组成,而字符流则由Reader和Writer两个抽象类及其子类组成。字节流可以读写任意类型的数据,而字符流只能读写字符类型的数据;字节流通常用于处理二进制数据,而字符流则通常用于处理文本数据。缓冲流是Java IO流中的一种流,它可以提高IO流的读写效率。缓冲流分为字节缓冲流和字符缓冲流。
2024-04-15 11:23:01
826
原创 数据库相关面试题(Mysql、Redis、ES)
ES是什么:ES是基于Lucene的搜索引擎。是一个分布式、多租户的全文搜索引擎,具有高可用、高可扩展性、高性能等特点ES的应用场景:ES广泛应用于日志分析、全文搜索、数据分析等领域,如网站搜索、电商搜索、日志分析、监控告警等ES的核心概念:ES的核心概念包括索引、映射、文档、分片、副本等。其中索引是ES中最重要的概念,类似于关系型数据库中数据表;映射类似于表结构;文档类似于行数据。ES的查询语句:ES提供了丰富的查询语句,如match、term、bool、range等,可以满足不同场景下的查询需求。
2024-04-15 11:22:47
687
原创 Spring相关面试题总结
Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。Spring属于轻量级的、低侵入式设计,代码的污染极低;Spring的控制反转将对象之间的依赖关系交由框架处理,减低组件的耦合性;Spring提供了AOP技术,支持将一些通用任务,如安全、事务、日志、权限等进行集中式管理,从而提供更好的复用;Spring对于主流的应用框架提供了集成支持。提供SPI方便其他框架集成p=11。
2024-04-15 11:21:17
751
原创 RocketMQ相关面试题总结
分为同步刷盘和异步刷盘生产者先把消息发送到MQMQ将数据写入内存MQ将内存的数据写入的磁盘刷盘成功后,返回给生产者对应的ACK生产者先把消息发送到MQMQ将数据写入内存直接给生产者返回对应的ACK由后台线程异步地去执行刷盘操作对比发现,同步刷盘安全性更高,单性能较低;异步刷盘响应更快,但是会有数据丢失的风险一般地,异步刷盘只有在 Broker 意外宕机的时候会丢失部分数据,你可以设置 Broker 的参数来调整你的刷盘策略(ASYNC_FLUSH 或者 SYNC_FLUSH)
2024-04-15 11:20:55
1019
原创 微服务相关 - SpringCloud + Dubbo
CAP原则是指,分布式系统中 的 强一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。这三个因素往往只能满足两点,不能三者兼顾。强一致性(Consistency): 访问所有的节点,得到的数据结果都是一样的可用性(Availability): 保证每个请求不管成功或者失败都有响应分区容错性(Partiton tolerance): 分布式系统在遇到某节点或者网络故障时,整个系统仍然能够对外提供满足一致性或者可用性的服务。
2024-04-15 11:18:52
524
原创 LeetCode刷题总结 - LeetCode 热题 100 - 持续更新
LeetCode 热题 100其他系列哈希1. 两数之和49. 字母异位词分组128. 最长连续序列双指针27. 移除元素283. 移动零11. 盛最多水的容器剑指 Offer II 007. 数组中和为 0 的三个数42. 接雨水滑动窗口438. 找到字符串中所有字母异位词3. 无重复字符的最长子串字串560. 和为 K 的子数组剑指 Offer 59 - I. 滑动窗口的最大值普通数组最大子数组和56. 合并区间189. 轮转数组238. 除自身以外数组的乘积矩阵73. 矩阵置零54. 螺旋矩阵48.
2023-10-13 22:33:41
851
原创 LeetCode刷题总结 - 面试经典 150 题 -持续更新
LeetCode刷题总结 - 面试经典 150 题 - 持续更新其他系列数组 / 字符串88. 合并两个有序数组27. 移除元素26. 删除有序数组中的重复项80. 删除有序数组中的重复项 II169. 多数元素189. 轮转数组121. 买卖股票的最佳时机122. 买卖股票的最佳时机 II55. 跳跃游戏274. H 指数380. O(1) 时间插入、删除和获取随机元素238. 除自身以外数组的乘积739. 每日温度42. 接雨水双指针125. 验证回文串392. 判断子序列167. 两数之和 II -
2023-07-29 19:59:20
7886
2
原创 最长公共子序列 - LCS
最长公共子序列 - LCS问题描述子序列定义子串定义公共子序列定义最长公共子序列(以下简称LCS)动态规划解决子问题划分及依赖关系递推公式伪代码复杂度分析问题描述子序列定义给定一个序列X=<x1,x2,x3,x4…,xm>,另一个序列Z=<z1,z2,z3,z4…,zk>,若存在一个严格递增的X的下标序列<i1,i2,i3,…,ik>对所有的1,2,3,…,k,都满足x(ik)=zk,则称Z是X的子序列比如Z=<B,C,D,B>是X=<A,B,C
2022-04-25 14:21:23
3874
原创 哈夫曼编码
哈夫曼编码概念前缀码的二叉树及权值哈夫曼编码的设计思想实例伪代码概念哈夫曼编码是一种字符编码方式,是可变长编码的一种,1952年提出,依据字符在文件中出现的频率来建立一个用0,1串表示各字符,使平均每个字符的码长最短的最优表现形式。应用于图像压缩和大容量存储为了正确解码,可变长编码必须满足,二元前缀码的性质:任何字符的代码都不能作为其他字符代码的前缀非前缀码的例子a:001, b:00,c:010,d:01解码的歧义,例如字符串0100001解码1:01,00,001 d, b, a解码
2022-04-20 23:14:44
35892
原创 单源最短路径问题 - Dijkstra
单源最短路径问题 - Dijkstra问题描述Dijkstra算法实例伪代码问题描述给定带权有向图G=(V, E, W),V:顶点集,E:边集,W:边的权值集合。每条边e = <i,j>的权w(e)为非负实数,表示从i到j的举距离。源点 u 属于 V。求:从源点u到出发到达其它节点的最短路径。(路径长度:指路径上所有边上的权值之和)如下图所示:为解决单源最短路径问题,我们这里介绍一个最典型的算法,Dijkstra算法Dijkstra算法实例第一步:下一步:下一步:
2022-04-16 22:24:46
994
原创 ElasticSearch入门到进阶
ElasticSearch入门到进阶ElasticSearch入门初识ElasticSearch安装ElasticSearchElasticSearch核心概念操作ElasticSearchElasticSearch JavaAPIElasticSearch入门ElasticSearch是一个搜索服务器说到搜索,大家第一时间想到的是什么?百度、谷歌、商城的搜索功能…其实搜索就是查询。 select * from xxx where xxx like %xxx% -> 关系型数据库那么像
2022-04-07 23:11:06
3453
3
原创 分治算法简单介绍
分治算法分治策略的基本思想基本思想分治策略注意二分查找循环赛日程表归并排序快速排序分治策略的基本思想基本思想将一个难以直接解决的大问题,分解成一些规模较小的相同的子问题,各个问题相互独立;递归地解决各个子问题,将子问题的解归并成原问题的解分治策略将原始问题划分或者归结为规模较小的子问题递归或者迭代求解每个子问题将子问题的解 综合 或者 不综合 得到原问题的解注意子问题和原问题性质完全一样子问题之间可彼此独立地求解递归停止时子问题可直接求解二分查找设计思想:通过x与中位数
2022-04-06 13:26:59
1797
原创 JWT的简单理解
JWT入门学习什么是JWT(what)简单介绍JWT能做什么为什么使用JWT(why)传统Session认证的弊端JWT的认证流程JWT认证的优势JWT的结构1、Header2、Payload3、Signature如何在Java中使用JWT(how)入门使用什么是JWT(what)简单介绍官网地址: https://jwt.io/introduction/翻译: json web token(JWT)是一个开放标准,它定义了一种紧凑的、自包含的方式,用于各方之间以JSON对象安全地传输信息。此信息
2022-03-31 21:57:46
2890
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人