自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第四章第六小节(红黑树的实现)

好好看,绝对让你看明白!ok,开始先介绍一下红黑树:红黑树是平衡搜索树的一种,保证在最坏情况下操作的时间复杂度为O(lgn)。树中的每个节点包含5个属性:color,data,left,right,parent。如果一个节点没有子节点或父节点,则该节点相应指针属性的值为NIL。可以把NIL视为二叉搜索树的叶节点的指针,把带关建字的结点视为树的内部结点。看明白了吧,估计你没有。解释一下什么是NIL,就是为了编程好实现,限定树的范围,将所有的空指针都指向一个NIL,ok,来个图就明白了。为了便于处理

2020-11-22 11:07:20 418

原创 第四章第五小节(伸展树的实现自底向上)

伸展树的基本思想:当一个节点被访问后,它要经过一系列的树的旋转操作,被放到根上,当一个节点很深时,就存在许多的节点也相对较深,通过重新构造可以使对这些节点的进一步访问所花费的时间变上。当一个节点被访问,它可能在不久后再次被访问到,它保证从空树开始任意连续M次对树的操作最多花费O(M logN)时间什么时候调整:在进行插入时,将新插入的节点调整到树根;删除时将删除的节点调整到树根,然后删除;查找时,将新访问的节点,调整到树根。怎么样调整:情况1:x节点的父亲节点y是根节点;如果x是y的左儿子,只需要对x

2020-11-20 19:22:47 400 1

原创 分布式事务 Seata

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。

2023-07-18 15:08:00 1059

原创 服务保护 Sentinel

Sentinel 是阿里巴巴微服务生态下的流量治理中心,可以实现流量控制、熔断降级、系统自适应保护等功能,从而解决服务雪崩的问题。Sentinel 的核心思想是控制流量,它可以通过限流、熔断、降级等手段来控制流量,避免系统过载,从而保护系统的稳定性和可用性。具体来说,当系统流量超出预设阈值时,Sentinel 会自动触发熔断降级操作,停止对该服务的调用,从而避免服务链路中的其他服务受到影响,避免服务雪崩的发生。

2023-07-13 17:34:42 899

原创 服务网关 Gateway

Spring Cloud Gateway 是 Spring官方基于Spring 5.0,Spring Boot 2.0和 Project Reactor 等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway 作为 Spring Cloud生态系中的网关,目标是替代 zuul ,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。

2023-07-06 22:33:48 1020

原创 服务注册与配置Nacos

nacos 英文全称 Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心。co为configuration 即注册中心,service是指该注册/配置中心都是以服务为核心。

2023-06-28 22:48:06 2924

原创 服务调用OpenFeign

OpenFeign 是 springcloud 在 Feign 的基础上支持了 SpringMVC 的注解,如 @RequestMapping等。OpenFeign的 @FeignClient 可以解析 SpringMVC的 @RequestMapping 注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。

2023-06-19 16:01:34 897 1

原创 服务负载均衡Ribbon

Ribbon 是一个的客服端负载均衡工具,它是基于 Netflix Ribbon 实现的。它不像 Spring Cloud 服务注册中心、配置中心、API 网关那样独立部署,但是它几乎存在于每个 Spring Cloud 微服务中。它内部提供了一个叫做ILoadBalance的接口代表负载均衡器的操作,比如有添加服务器操作、选择服务器操作、获取所有的服务器列表、获取可用的服务器列表等。

2023-06-16 14:37:15 2903

原创 服务注册中心Eureka

Eureka采用了C-S的设计架构,包含两个组件:Eureka Server 和 Eureka Client。Eureka Server 作为服务注册功能的服务器,它是服务注册中心。Eureka Client 是一个Java客户端,用于简化Eureka Server的交互。

2023-06-16 09:48:41 1361

原创 微服务技术简介

Eureka:一个基于 Rest 服务的服务治理组件,包括服务注册中心、服务注册与服务发现机制的实现,实现了云端负载均衡和中间层服务器的故障转移。Hystrix:容错管理工具,实现断路器模式,通过控制服务的节点,从而对延迟和故障提供更强大的容错能力。Ribbon:客户端负载均衡的服务调用组件。Feign:基于 Ribbon 和 Hystrix 的声明式服务调用组件。Zuul:微服务网关,提供动态路由,访问过滤等服务。

2023-06-13 23:01:57 1334

原创 Maven 工具

maven 整体分为两个大的部分,项目的构建和依赖的管理。项目构建:提供标准的,跨平台的自动化项目构建方式。依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题。统一开放结构:提供标准的,统一的项目结构。通过pom文件来引入项目所需要的依赖,本地仓库,私服仓库(个人和组织私有的仓库,不放在互联网),中央仓库来存储管理依赖。maven通过各种插件来构建项目。通过maven来创建项目,可以统一项目结构。

2023-06-04 20:10:24 1290 1

原创 SpringBoot 框架

SpringBoot 的设计目的是用来简化 Spring 应用的初始搭建以及开发过程。以 SpringMVC 开发为例。需要在pom.xml中导入坐标。配置 web类。配置 SpringMVC配置类。编写Controller类。其中前三步都是在进行配置,SpringBoot 就是对这三步进行简化。SpringBoot 主要作用是简化 Spring 的搭建过程和开发过程。配置繁琐依赖设置繁琐SpringBoot 程序优点恰巧就是针对 Spring 的缺点自动配置。

2023-05-29 22:57:54 2471

原创 MyBatis 框架

MyBatis 是一个基于 JDBC 的持久层框架。MyBatis 支持定制化SQL,存储过程以及高级映射,是一个非常优秀的持久层框架。MyBatis 对JDBC的设置参数和获取结果集的操作进行封装。MyBatis 可以使用xml或注解用于配置和原始映射,将接口和Java的POJO映射成数据库中的记录。MyBatis 是一个半自动的ORM框架(SQL语句要自己写)

2023-05-24 23:28:10 1901

原创 Spring MVC 框架

Spring MVC是处于Web层的框架,主要的作用就是接受前端发过来的请求和数据,进行处理,然后将处理结果响应给前端。

2023-05-17 23:36:34 999

原创 Spring框架

Spring 为了简化开发,提供了两个大的核心技术 IOC 和 AOP。对于Spring的学习主要学习 IOC和AOP。Spring 还提供了事务处理,事务处理是Spring 中AOP的具体应用。Spring可以进行框架整合,可以整合几乎所有主流框架。

2023-05-10 22:54:57 825

原创 设计模式-第25章(模式总结)

设计模式分类六大设计原则创建型模式总结结构型模式总结行为型模式一行为型模式二总结

2023-04-05 22:24:38 359

原创 设计模式-第24章(访问者模式)

访问者模式(Visitor),表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各个元素的类的前提下定义作用于这些元素的新操作。

2023-03-28 22:57:51 256

原创 设计模式-第24章(解释器模式)

解释器模式需要解决的是,如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。Context 包含解释器之外的一些全局信息。AbstractExpression 抽象表达式,声明一个抽象的解释操作。TerminalExpression 终结符表达式,实现与文法中的终结符相关联的解释操作。NonterminalExpression 非终结符表达式,为文法中的非终结符实现解释操作。

2023-03-27 22:51:36 533

原创 设计模式-第23章(享元模式)

何时应用享元模式?如果一个应用程序使用了大量的对象,而大量的这样对象造成了很大的存储开销时,就应该考虑使用。还有就是对象的大多数状态可以是外部状态,如果删除了外部状态,就可以用相对较少的共享对象取代很多组对象,此时可以考虑使用享元模式。享元模式,共享了对象,可以减少实例,可以节约存储空间。享元模式的应用,在Java中,字符串常量池就是运用了享元模式。String titleA = new String("大话设计模式");String titleB = new String("大话设计模式");

2023-03-26 22:54:27 549 1

原创 设计模式-第22章(中介者模式)

中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

2023-03-22 23:11:02 310

原创 设计模式-第21章(职责链模式)

职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

2023-03-21 22:46:34 329

原创 设计模式-第20章(命令模式)

命令模式的优点能比较容易地设计一个命令队列。在需要的情况下,可以较容易地将命令记入日志。允许接收请求的一方决定是否要否决请求。可以容易地实现对请求的撤销和重做。加进新的具体的命令类不影响其他的类。命令模式把请求一个操作的对象与知道怎么执行一个操作的对象分割开。敏捷开发原则:不要为代码添加基于猜测的 ,实际不需要的功能。

2023-03-20 22:41:33 395

原创 设计模式-第19章(桥接模式)

子类的实现与父类的实现有非常紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化。当你需要复用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类替换。合成/聚合复用原则的好处,优先使用对象的合成/聚合将有助于保存每个类被封装,并被集中到单个任务上。手机有多种手机品牌,每一种手机品牌都有不同的手机软件。雁群和大雁,每一个大雁都属于一个雁群,一个雁群有多个大雁,大雁和雁群是聚合关系。大雁和翅膀是整体和部分的关系,并且生命周期是相同的,大雁和翅膀就是合成关系。

2023-03-20 21:21:45 421

原创 设计模式-第18章(单例模式)

然后,由于锁机制,只能有一个线程进入,进行对象的创建,然后解锁。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。Singleton类,包含了一个实例化的对象,定义一个 getInstance 静态方法,主要用来得到唯一的实例。可以在getInstance方法内部对 Singleton 类加锁,只有当对象没有实例化的时候,加锁,防止多个线程创建多个对象。在多线程环境下,如果同时访问 Singleton 类,调用getInstance方法,可能会创建多个实例。

2023-03-18 16:43:06 495

原创 设计模式-第17章(迭代器模式)

迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。ConcreteIterator,ConcreteIteratorDesc 具体的迭代器类。为遍历不同的聚合结构,需要提供开始,下一个,是否结束,当前项等统一的接口。Java.util.Iterator 支持对集合对象的简单迭代接口。在Java中,已经准备好了相关的接口,只需要去实现就好。ConcreteAggregate 具体聚合类。Iterator 迭代器抽象类,定义统一的接口。

2023-03-16 22:47:41 448 1

原创 设计模式-第16章(组合模式)

组合模式(Composite),将对象组合成树形结构以表示’部分-整体‘的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。

2023-03-15 22:52:09 494

原创 设计模式-第15章(备忘录模式)

Memento 模式比较适用于功能比较复杂的,但需要维护或记录属性历史的类,或者需要保存的属性只是众多属性中的一小部分时,Originator 可以根据保存的Memento信息还原到前一状态。Memento(备忘录):负责存储 Originator 对象的内部状态,并防止 Originator 以外的其他对象访问备忘录 Memento。将要保存的细节给封装到 Memento 中,如果想要修改要保存的细节,只需要更改 Memento 类,不用更改客户端。RoleStateMemento 角色备忘录类。

2023-03-14 23:01:24 184

原创 设计模式-第14章(适配器模式)

适配器模式(Adapter),将一个类的接口转换成客户希望的另一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

2023-03-13 23:00:54 212

原创 设计模式-第13章(状态模式)

状态模式(State),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

2023-03-10 23:42:27 405 1

原创 设计模式-第12章(抽象工厂模式)

抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

2023-03-08 23:23:20 179

原创 设计模式-第11章(观察者模式)

观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。

2023-03-07 22:53:58 301

原创 设计模式-第10章(建造者模式)

建造者模式(Builder),将一个复杂对象的构建和表示分离,使得同样的构建过程可以创建不同的表示。

2023-03-06 22:36:16 258

原创 设计模式-第9章(外观模式)

外观模式(Facade),为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

2023-03-05 23:12:18 73

原创 设计模式-第8章(模板方法模式)

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

2023-03-05 22:15:58 239

原创 设计模式-第7章(原型模式)

原型模式简历的原型实现浅拷贝与深拷贝简历的深复制实现

2023-03-02 23:06:20 75

原创 设计模式-第6章(工厂模式)

简单工厂实现工厂模式实现简单工厂 VS 工厂方法商场收银程序再再升级(简单工厂+策略+装饰+工厂方法)工厂方法模式总结

2023-03-01 22:42:32 1923 3

原创 设计模式-第5章(代理模式)

代理模式(Proxy),为其他对象提供了一种代理以控制对这个对象的访问。

2023-02-28 22:27:42 202

原创 设计模式-第4章(装饰模式)

装饰模型装饰模式示例商场收银程序(简单工厂+策略+装饰模式实现)装饰模式总结

2023-02-27 23:02:22 1022

原创 设计模式-第3章(设计原则)

单一职责原则开放-封闭原则依赖倒转原则迪米特法则

2023-02-20 23:28:05 305 1

原创 设计模式-第2章(策略模式)

策略模式收银软件简单工厂模式实现策略模式策略模式实现策略模式解析

2023-02-09 23:33:04 379

空空如也

空空如也

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

TA关注的人

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