自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 计算机原码、反码、补码及其与、或、移位操作

2025-04-11 15:43:00 145

原创 设计模式之状态设计模式

对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为,属于行为型模式。状态模式是策略模式的孪生兄弟,他们的UML图是一样的,但实际上解决的是不同情况的两种场景问题。状态设计模式(State Pattern)允许一个对象在其内部状态改变时改变它的行为。代码示例,电商项目中每个状态都有不同的操作。工作中用的不多,基本策略模式比较多。状态设计和策略模式的区别。

2025-03-16 17:05:54 434

原创 设计模式之备忘录设计模式

Originator发起者:记录当前的内部状态,并负责创建和恢复备忘录数据,允许访问返回到先前状态所需的所有数据,可以根据需要决定Memento存储自己的哪些内部状态。Memento备忘录:负责存储Originator发起人对象的内部状态,在需要的时候提供发起人需要的内部状态。Caretaker管理者:对备忘录进行管理、保存和提供备忘录,只能将备忘录传递给其他角色。备忘录设计模式(Memento Pattern)Originator和Memento属性类似。代码示例,以游戏存档、回退为例。

2025-03-15 17:44:44 1054

原创 设计模式之迭代器设计模式

抽象迭代器角色(Iterator):负责定义访问和遍历元素的接口,包括几个核心方法,取得下一个元素的方法next(),判断是否遍历结束的方法isDone()(或者叫hasNext()),移除当前对象的方法remove()具体容器角色(ConcreteAggregate):实现抽象容器的具体实现类,例如List接口的有序列表实现ArrayList,List接口的链表实现LinkedList,Set接口的哈希列表的实现HashSet等。代码示例,自定义集合容器简化版。

2025-03-15 14:56:04 797

原创 设计模式之命令设计模式

具体命令(ConcreteCommand):定义一个接收者和行为之间的弱耦合,实现execute()方法,负责调用接收者的相应操作,execute()方法通常叫做执行方法。接收者(Receiver):负责具体实施和执行一个请求,干活的角色,命令传递到这里是应该被执行的,实施和执行请求的方法叫做行动方法。请求者(Invoker):负责调用命令对象执行请求,相关的方法叫做行动方法。抽象命令(Command):需要执行的所有命令都在这里声明。命令设计模式(Command Pattern)

2025-03-15 13:12:02 675

原创 设计模式之责任链设计模式

ConcreterHandler具体处理者 :处理所负责的请求,可访问它的后续节点,如果可处理该请求就处理,否则就将该请求转发给它的后续节点。责任链设计模式(Chain of Responsibility Pattern)Handler抽象处理者:定义了一个处理请求的接口。代码示例,以转账风控为例。

2025-03-15 11:50:20 915

原创 设计模式之观察者模式

Subject主题:持有多个观察者对象的引用,抽象主题提供了一个接口可以增加和删除观察者对象;ConcreteSubject具体主题:将有关状态存入具体观察者对象,在具体主体内部状态改变时,给所有登记过的观察者发出通知。ConcreteObserver具体观察者:实现抽象观察者角色所要求的更新接口,以便使本身的状态与主题的状态保持一致。一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。Observer抽象观察者:为具体观察者定义一个接口,在得到主题的通知时更新自己。

2025-03-14 14:19:45 301

原创 设计模式之模板方法模式

抽象模板(Abstract Template):定义一个模板方法,这个模板方法一般是一个具体方法,给出一个顶级算法骨架,而逻辑骨架的组成步骤在相应的抽象操作中,推迟到子类实现。具体模板(Concrete Template):实现父类所定义的一个或多个抽象方法,它们是一个顶级算法逻辑的组成步骤。模板方法模式(Template Method)代码示例,以项目开发上线为例。模板方法模式和建造者模式区别。

2025-03-14 11:05:55 234

原创 设计模式之策略模式

Comparator接口常用的compare()方法,就是一个策略模式的应用,把Comparator作为参数使用生成不同的排序策略。Strategy策略角色:抽象策略角色,是对策略、算法家族的抽象,定义每个策略或算法必须具有的方法和属性。ConcreteStrategy具体策略角色:用于实现抽象策略中的操作,即实现具体的算法。Context上下文:屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。策略模式(Strategy Pattern)代码示例:电商优惠活动举例。

2025-03-13 08:43:42 728

原创 设计模式之享元设计模式

抽象享元角色:为具体享元角色规定了必须实现的方法,而外部状态就是以参数的形式通过此方法传入。具体享元角色:实现抽象角色规定的方法。如果存在内部状态,就负责为内部状态提供存储空间。注意划分内部状态和外部状态,否则可能会引起线程安全问题,必须有一个工厂类加以控制。享元工厂角色:负责创建和管理享元角色。要想达到共享的目的,这个角色的实现是关键。客户端角色:维护对所有享元角色的引用,而且还需要储存对应的外部状态。享元设计模式(Flyweight Pattern)享元设计模式和原型、单例模式的区别。

2025-03-10 15:45:13 426

原创 设计模式之外观设计模式

外观设计模式(Facade Pattern)代码示例:以推送消息为例。

2025-02-24 11:24:53 492

原创 设计模式之代理设计模式

代理设计模式(Proxy Pattern)代码示例:以卖手机为例子。有静态代理和动态代理两种。

2025-02-24 11:09:26 226

原创 设计模式之装饰器设计模式/包装设计模式

给对象增加功能,一般两种方式,继承或关联组合,将一个类的对象嵌入另一个对象中,由另一个对象来决定是否调用嵌入对象的行为来增强功能,这个就是装饰器模式,比继承模式更加灵活。也叫包装设计模式,属于结构型模式,它是作为现有的类的一个包装,允许向一个现有的对象添加新的功能,同时又不改变其结构。JDK源码里面应用最多的就是IO流,大量使用装饰器设计模式。以动态、透明的方式给单个对象添加职责,但又能不改变其结构。角色(装饰者和被装饰者有相同的超类Component)装饰器设计模式(Decorator Pattern)

2025-02-21 11:30:31 915

原创 设计模式之组合设计模式实战 文件展示 树叶子节点

【代码】设计模式之组合设计模式实战 文件展示 树叶子节点。

2025-02-21 09:42:50 776

原创 设计模式之桥接设计模式

【代码】设计模式之桥接设计模式。

2025-01-04 20:37:38 1019

原创 设计模式之适配器模式

想将一个类转换成满足另一个新接口的类时,可以使用类的适配器模式,创建一个新类,继承原有的类,实现新的接口即可。

2025-01-04 20:29:43 1107

原创 设计模式之建造者模式

建造者模式与抽象工厂模式的比较。代码示例,以组装电脑为例子。

2025-01-04 13:19:30 1003

原创 设计模式之原型设计模式,对象拷贝

原型设计模式prototype核心组成应用场景浅拷贝代码示例。

2025-01-04 10:29:16 657

原创 设计模式之工厂模式

它提供了一种创建对象的最佳方式,我们在创建对象时,不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象3种实现方式优点应用场景。

2025-01-04 08:55:44 779

原创 设计模式之单例模式

缺点:不管是否使用,instance对象一直占用内存。优点:实现简单,没有多线程同步问题。饿汉方式:提前创建好对象。

2024-11-23 10:08:38 579

原创 K8S数据存储持久化Volume和高级存储之PV、PVC

Volume介绍Volume常见的类型。

2024-11-17 13:03:14 1221

原创 linux企业中常用NFS、ftp服务

修改ip地址为静态vim /etc/sysconfig/network-scripts/ifcfg-enxxx重启网卡:systemctl restart network.serviceping不通域名解决:vi /etc/resolv.conf。

2024-11-16 09:40:20 673

原创 K8S常用命令及其相关概念【偏实战】

资源管理方式命令式对象管理:直接使用命令去操作资源命令式对象配置:通过命令配置和配置文件去操作资源声明式对象配置:通过apply和配置文件操作资源kubectl create和kubectl apply区别使用命令生成yaml配置文件yaml文件说明,以deployment为例。

2024-11-15 10:52:39 933

原创 K8S单节点部署及集群部署

前置条件:安装docker,安装kubectl和minikube测试部署nginx。

2024-11-14 08:17:57 2482

原创 K8S概念及其常见组件和整体架构

什么是KubernetesK8S的本质是一组服务器集群,可以在对应服务器集群的每个节点上运行程序,来对节点中的容器进行管理类似Master-Work方式,每个服务器上安装特定的K8S组件,就可以形成集群,然后部署对应的应用即可K8S常见的功能。

2024-10-30 11:01:26 1042

原创 微服务之链路追踪Sleuth+zipkin

链路追踪系统核心:将一次请求分布式调用,使用GPS定位串起来,记录每个调用的耗时、性能等日志,并通过可视化工具展示出来注意:AlibabaCloud全家桶还没对应的链路追踪系统,我们使用Sleuth和zipkin(内部使用的鹰眼)

2024-10-26 08:40:29 999

原创 微服务网关之Gateway

什么是SpringCloud GatewaySpring官方出品,基于Spring5+Reactor技术开发的网关性能强劲,基于Reactor+WebFlux,功能多样基于springboot2.x,可以直接jar包方式运行。

2024-10-25 15:35:57 1276

原创 微服务之Sentinel概念介绍及项目实战代码

什么是Sentinel阿里巴巴开源的分布式系统流控工具以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性丰富的应用场景:消息削峰填谷、集群流量控制、实时熔断下游不可用应用等完备的实时监控:Sentinel同时提供实时的监控功能提供开箱即用的与其它开源框架/库的整合模块,例如与Spring Cloud、Dubbo、gRPC的整合介绍 · alibaba/Sentinel Wiki · GitHub。

2024-10-25 08:30:41 1199

原创 设计模式的六大原则

软件设计开发原则为了让代码更好重用性、可读性、可靠性、可维护性诞生出了很多软件设计的原则,这6大设计原则是我们要掌握的将六大原则的英文首字母拼在一起就是SOLID(稳定的),所以也称之为SOLID原则单一职责原则一个类只负责一个功能领域中的相应职责,就一个类而言,应该只有一个引起它变化的原因是实现高内聚、低耦合的指导方针高内聚尽可能类的每个成员方法只完成一件事(最大限度的聚合)模块内部的代码,相互之间的联系越强,内聚就越高,模块的独立性就越好低耦合:减少类内部,一个成员

2024-10-17 19:22:16 512

原创 分布式事务Seata原理及其项目使用

架构理解:TC为单独部署的Server服务端,TM和RM为嵌入到应用中的Client客户端。AT模式可以应对大多数的业务场景,并且基本可以做到无业务入侵,开发者无感知。在Service方法上增加注解@GlobalTransactional。用户只需关心自己的业务SQL,AT模式分为两个阶段,可以认为是2PC。TC(事务协调器)需要存储全局事务和分支事务的记录,支持三种存储模式。Seata实现分布式事务,关键是UNDO_LOG(回滚日志记录表)application.yml文件。Seata事务处理过程描述。

2024-09-09 19:16:52 1086

原创 spring boot邮件发送整合

邮件发送的基本过程与概念。微服务service封装。

2024-08-16 10:12:00 362

原创 docker环境使用云镜像和搭建本地镜像仓库harbor

根据阿里云操作指南进行操作即可。

2024-08-15 10:28:43 491

原创 docker-compose安装与简单使用

docker-compose:是一个用于定义和运行多容器docker的应用程序工具,可以帮助我们轻松、高效的管理容器docker-compose安装$(uname-s$(uname-m。

2024-08-11 20:39:53 339

原创 docker自定义镜像

docker目前镜像的制作有两种方法基于docker commit制作镜像:docker commit -a “Gen” -m “自定义镜像” b98b4a1eb7d4 mycentos:7基于Dockerfile制作镜像,Dockerfile方式为主流的制作镜像方式创建Dockerfile文件构建:docker build -t mycentos:v2 .

2024-07-10 15:09:17 534

原创 CentOS 7配置阿里云镜像源及其加速

下载Centos-7.repo文件。

2024-07-04 17:16:44 744

原创 Java锁

什么是乐观锁数据库的乐观锁。

2024-06-27 16:09:27 300

原创 Object类hashCode方法和equals方法源码

顶级类Object里面的方法,所有类都是继承Object的,返回值int类型根据一定的hash规则(存储地址、字段、或者长度等),映射成一个数值,即散列值。

2024-06-20 18:23:58 408

原创 lombok常用注解使用与原理

能实现上述效果的还有一个反射技术,那两个对比如何?

2024-06-20 16:18:27 472

原创 方法论:SWOT、SMART

解决方案分析方法论SWOT什么是SWOT:例子中间件RabbitMQ和RocketMQ队列选择对比S(strengths)优势:RabbitMQ团队多人用过,AMQP跨语言、模型API丰富W(weaknesses)劣势:RabbitMQ阅读过源码的人过少,Erlang开发,二次修改不容易O(opportunities)机会:多个容器平台拥抱RabbitMQ,易用性、扩展性强T(threats)威胁:未来可能有更强大的MQ产品出现或改动架构SMART原则(目标管理、设置)Specific:

2024-06-18 17:26:21 323

原创 【面试题】CAP理论、BASE理论及其注册中心选型

CAP:指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性),三者不可同时获得CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容错性是我们必须要实现的。所以我们只能在一致性和可用性之间进行权衡。

2024-05-30 16:58:46 495

思维导图:Redis常用命令

思维导图:Redis常用命令

2023-11-25

思维导图:Redis常用命令

思维导图:Redis常用命令

2023-11-25

空空如也

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

TA关注的人

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