自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 「全网最细 + 实战源码案例」设计模式——单例设计模式

序列化破坏:通过方法解决。反射破坏:通过构造方法检查或使用枚举单例解决。推荐方式:使用枚举单例,最简单且最安全,能有效防止这两种破坏。

2025-01-21 18:03:54 1415

原创 图解MySQL【日志】——磁盘 I/O 次数过高时优化的办法

事务提交时,需要将 Redo Log 和 Binlog 持久化到磁盘中,可以通过四个参数,来控制刷盘时机,以降低磁盘 I/O 的频率。

2025-02-22 11:25:38 201

原创 图解MySQL【日志】——两阶段提交

MySQL 5.7 及以后版本,引入了 Redo Log 组提交,改进点:prepare 阶段时,不再让事务独自执行 Redo Log 的刷盘操作,而是推迟到组提交的 flush 阶段,即 prepare 阶段融合在了 flush 阶段。事务提交后,Redo Log 和 Binlog 都要持久化到磁盘中,但是这两个是独立的逻辑,可能会出现半成功状态,造成两种日志之间的逻辑不一致。当有多个事务提交时,会将多个 Binlog 刷盘操作合并成一个,以减少磁盘 I/O 次数。

2025-02-22 11:24:02 870

原创 图解MySQL【日志】——Binlog

MySQL 的主从复制依赖于 Binlog,即记录 MySQL 上所有变化并以二进制形式保存在磁盘上,复制的过程是将 Binlog 中的数据从主库传输到从库上。且这个过程一般是异步的——主库上执行事务操作的线程不会等待复制 Binlog 的线程同步完成。在完成主从复制后,就可以实现主写从读的模式了,这样即使写请求会锁表或者锁记录,也不会影响读请求的执行。每个线程将缓冲在 Binlog Cache 中的日志文件,最终写到同一个 Binlog 文件。

2025-02-21 23:09:44 899

原创 图解MySQL【日志】——Redo Log

决定 Redo Log 的刷盘时机。

2025-02-21 23:05:38 1294

原创 图解MySQL【日志】——Buffer Pool

Buffer Pool 是数据库管理系统(DBMS)中的一块 Cache(内存区域),用来缓存从磁盘中读取到的 Data Pages(数据页)。Data Pages 通常是表中的数据行与索引数据,通过缓存 Data Pages,Buffer Pool 可以大大减少对磁盘的访问,提高 DB 的性能。

2025-02-19 22:05:05 307

原创 图解MySQL【日志】——Undo Log

Undo Log 是由 InnoDB 提供,当 InnoDB 引擎对一条记录进行操作(插入、删除、更新)时,会按操作类型在 Undo Log 中分别进行不同的记录。一条记录的每一次更新操作产生的 Undo Log 格式都有一个。

2025-02-19 22:01:56 829

原创 「全网最细 + 实战源码案例」设计模式——责任链模式

责任链是硬编码的,添加/删除处理器麻烦。明确指定下一个处理者。责任链顺序完全可配置。

2025-02-06 18:05:06 1032

原创 「全网最细 + 实战源码案例」设计模式——命令模式

【代码】「全网最细 + 实战源码案例」设计模式——命令模式。

2025-02-06 18:03:27 971

原创 「全网最细 + 实战源码案例」设计模式——策略模式

【代码】「全网最细 + 实战源码案例」设计模式——策略模式。

2025-02-04 17:39:49 1257

原创 「全网最细 + 实战源码案例」设计模式——模板方法模式

定义算法的骨架(模板方法)。由一个模板方法和若干个基本方法构成。模板方法:定义算法骨架,按某种顺序调用其包含的基本方法。基本方法:实现算法各步骤的方法,是模板方法的组成部分,分为三类:抽象方法:由抽象类声明,具体子类实现。具体方法:一个具体方法由一个抽象类或具体类声明并实现,其子类可以覆盖或继承。钩子方法:抽象类中已实现,包括用于判断的逻辑方法和需要子类重写的空方法。

2025-02-04 17:37:52 1009

原创 「全网最细 + 实战源码案例」设计模式——组合模式

组合模式(Transparent Composite Pattern)和安全组合模式(Safe Composite Pattern)都是组合模式的变种,组合模式是结构型设计模式的一种,主要用来将对象组合成树形结构来表示“部分-整体”的层次结构。每支部队包括几个师, 师由旅构成, 旅由团构成, 团可以继续划分为排。军事命令由最高层下达, 通过每个层级传递, 直到每位士兵都知道自己应该服从的命令。, 因为叶节点类中的这些方法为空。但是, 这可以让客户端无差别地访问所有元素, 即使是组成树状结构的元素。

2025-02-02 17:42:21 925

原创 「全网最细 + 实战源码案例」设计模式——享元模式

【代码】「全网最细 + 实战源码案例」设计模式——享元模式。

2025-02-02 17:38:40 1235 2

原创 「全网最细 + 实战源码案例」设计模式——装饰器模式

穿衣服是使用装饰的一个例子。觉得冷时, 你可以穿一件毛衣。如果穿毛衣还觉得冷, 你可以再套上一件夹克。如果遇到下雨, 你还可以再穿一件雨衣。所有这些衣物都 “扩展” 了你的基本行为, 但它们并不是你的一部分, 如果你不再需要某件衣物, 可以方便地随时脱掉。

2025-01-30 20:08:38 1143

原创 「全网最细 + 实战源码案例」设计模式——桥接模式

定义高层逻辑,组合 Implementation(实现类接口)对象。Abstraction 的子类,实现父类的业务方法,并通过组合关系调用实现化角色中的业务方法。

2025-01-30 20:05:33 1175

原创 「全网最细 + 实战源码案例」设计模式——适配器模式

【代码】「全网最细 + 实战源码案例」设计模式——适配器模式。

2025-01-28 18:28:27 1409

原创 「全网最细 + 实战源码案例」设计模式——代理模式

较低,依赖反射(1.8 之后更快)目标类无接口或对性能要求较高。不需要接口,直接代理类。基于字节码操作生成子类。较高,直接调用字节码。

2025-01-28 18:26:03 1180

原创 「全网最细 + 实战源码案例」设计模式——原型模式

【代码】「全网最细 + 实战源码案例」设计模式——原型模式。

2025-01-24 17:19:10 1241

原创 「全网最细 + 实战源码案例」设计模式——生成器模式

【代码】「全网最细 + 实战源码案例」设计模式——生成器模式。

2025-01-24 17:13:52 650

原创 「全网最细 + 实战源码案例」设计模式——模式扩展(配置工厂)

2. 改进工厂类

2025-01-23 18:31:40 385

原创 「全网最细 + 实战源码案例」设计模式——抽象工厂模式

抽象工厂模式是一种创建型设计模式,它提供一个接口,用于创建一系列相关或互相依赖的对象,而无需指定它们的具体类。抽象工厂模式解决了产品族的问题,可以管理和创建一组相关的产品。

2025-01-23 18:27:05 1349

原创 「全网最细 + 实战源码案例」设计模式——工厂方法模式

简单工厂模式是一种创建者模式,它通过一个工厂类负责创建不同类型的对象,根据传入的参数决定实例化的具体类,也被称为“静态工厂方法”模式,因为工厂方法通常是静态的。

2025-01-22 17:50:39 608

原创 「全网最细 + 实战源码案例」设计模式——简单工厂模式

简单工厂模式是一种创建者模式,它通过一个工厂类负责创建不同类型的对象,根据传入的参数决定实例化的具体类,也被称为“静态工厂方法”模式,因为工厂方法通常是静态的。

2025-01-22 17:45:54 396

原创 「全网最细 + 实战源码案例」设计模式——六大设计原则

子类对象应该能够替代父类对象出现在程序中的位置,并且程序的行为不会因此受到影响。(一个程序使用父类的对象,那么在不改变程序行为的前提下,子类对象可以替代父类对象)。提高软件系统的可维护性和可复用性,增加软件的可拓展性和灵活性,程序员遵循 6 条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。

2025-01-21 18:01:53 898

原创 图解Git——分布式Git《Pro Git》

向一个项目贡献代码的流程是多种多样的,取决于项目的规模、工作流、贡献者的角色以及提交权限。最重要的是理解项目的工作流、遵循项目的提交准则,并保持代码的清晰与规范。向一个项目贡献代码的过程涉及到几个关键的因素,其中每个因素都可能影响贡献的方式、流程以及最终效果。如果是分支工作流,你可能需要在自己完成代码后,推送到自己的分支上,再通过拉请求的方式提交合并。提交信息是贡献中非常重要的一部分,合理的提交信息有助于项目维护者理解你的改动,并在后期进行回溯时找到问题。在多人协作的项目中,冲突是不可避免的。

2025-01-17 23:26:59 1286

原创 图解Git——服务器上的Git《Pro Git》

作用:提供协作平台,支持团队共享代码,即使主机离线,其他人仍可访问。常见形式:裸仓库(不含工作目录,仅保存Git元数据)。本地协议:适合团队在共享文件系统上使用,但局限于单一网络环境。HTTP/HTTPS协议:推荐智能HTTP,适合绝大多数团队协作场景。SSH协议:适合企业内部使用,安全且高效。Git协议:适合提供高效只读访问,但不适用于需要授权控制的场景。选择协议时,可根据协作需求、访问场景、安全性和配置难度进行权衡。

2025-01-17 23:26:08 888

原创 图解Git——变基《Pro Git》

将一系列提交“重新播放”到另一个分支上,改变提交历史,使其更线性。git rebase <目标分支>:将当前分支的修改基于目标分支重新应用。git rebase --onto <新基底> <旧基底> <分支>:将特定提交从旧基底移动到新基底。提交历史更加整洁、直线化。避免了不必要的合并提交,便于代码审查。如果变基已推送的提交,可能破坏其他开发者的工作(引发冲突和混乱)。使用建议:对未推送的本地分支清理历史,或整理提交后再推送。对已共享的公共分支执行变基。

2025-01-15 22:10:48 912

原创 图解Git——远程分支《Pro Git》

远程分支概念远程分支是远程仓库的状态镜像,保存在本地以形式表示,如。使用git fetch更新本地的远程分支状态,但不会修改工作区。查看远程分支:查看远程仓库的所有引用。:查看远程分支详细信息。推送与拉取推送将本地分支推送到远程分支。拉取git pull等效于git fetchgit merge。建议显式执行git fetch和git merge以避免git pull的混淆。创建跟踪分支:从远程分支创建本地分支并建立跟踪关系。:为已有本地分支设置上游分支。查看分支状态。

2025-01-15 22:09:50 1204

原创 图解Git——分支开发工作流《Pro Git》

概念/定义分支开发工作流是利用 Git 的强大分支功能,灵活管理项目开发的方式。通过短期和长期分支的结合,可以更好地组织代码,确保代码稳定性并支持团队协作。

2025-01-14 23:46:35 1040

原创 图解Git——分支管理《Pro Git》

概念/定义Git 分支是版本控制的重要机制,可以让开发者在不同分支上并行工作,而不会互相干扰。

2025-01-14 23:45:30 441

原创 图解Git——分支的新建与合并《Pro Git》

模拟合并时并不顺利,出现了冲突:对同一个文件的同一个部分进行了不同的修改,Git 就没法干净的合并它们。正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。的全部工作,并打算将其合并到。

2025-01-13 23:57:47 1081

原创 图解Git——分支简介《Pro Git》

作用:分支允许将工作从主开发线上分离,避免影响主线开发。传统版本控制的劣势:创建分支通常需要复制整个项目文件,效率低下。Git 的优势:分支是 Git 的“必杀技特性”,创建和切换分支都非常轻量和高效,几乎瞬间完成。

2025-01-13 23:56:47 914

原创 HTTP详解——HTTP基础

HTTP 是超文本传输协议 (HyperText Transfer Protocol)

2025-01-12 22:51:22 1264

原创 Git 基础——《Pro Git》

在 Git 中任何已提交的东西几乎总是可以恢复的。甚至那些被删除的分支中的提交或使用--amend选项覆盖的提交也可以恢复 (阅读数据恢复了解数据恢复)。然而,任何你未提交的东西丢失后很可能再也找不到了。取消暂存文件使用撤销暂存,等价于。查看最后一次提交使用git last查看最后一次提交记录。

2025-01-12 20:56:49 1287

原创 层次模型式的工作流

层次模型式的工作流是一种适合分布式版本控制系统(如 Git、Mercurial)的开发协作方式,它将开发团队分成多个层次,每个层次有明确的角色和职责,代码从底层逐步向上层汇总和集成,最终形成一个完整、稳定的产品。

2025-01-11 23:09:07 346

原创 初识 Git——《Pro Git》

状态描述操作命令已修改文件被修改,但还未暂存修改文件已暂存文件被暂存,等待提交。

2025-01-11 10:58:33 1020

原创 SpringMVC详解(全网最全)

SpringMVC详解(全网最全)

2025-01-07 23:36:19 686

原创 Servlet详解

概念Servlet是运行在服务端的小程序(ServerApplet),可以处理客户端的请求并返回响应,主要用于构建动态的Web应用,是SpringMVC的基础。生命周期加载和初始化默认在客户端第一次请求加载到容器中,通过反射实例化,并调用init(),且init()只能被调用一次,因此每个Servlet是单例的,需注意线程安全。请求处理处理业务逻辑的核心方法,Servlet容器收到url请求后,路由到对应的Servlet,调用service()方法处理客户端请求,并返回响应。 每次

2025-01-07 18:15:10 316

原创 「全网最细 + 实战源码案例」设计模式——外观模式

「全网最细 + 实战源码案例」设计模式——外观模式。

2025-01-06 23:05:08 1463

原创 微服务实战——购物车模块实战

参考京东,在点击购物车时,会为临时用户生成一个name为user-key的cookie临时标识,过期时间为一个月,如果手动清除user-key,那么临时购物车的购物项也被清除,所以user-key是用来标识和存储临时购物车数据的。一个购物车是由各个购物项组成的,但是我们用 List进行存储并不合适,因为使用 List查找某个购物项时需要挨个遍历每个购物项,会造成大量时间损耗,为保证查找速度,我们使用 hash进行存储。

2025-01-03 22:39:46 1408

空空如也

空空如也

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

TA关注的人

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