自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天空之蓝的博客

爱技术,爱生活!

  • 博客(135)
  • 资源 (2)
  • 收藏
  • 关注

原创 营销库存系统设计方案

采用Redis集群缓存库存数据,通过Lua脚本实现原子性扣减,支持秒级库存更新与查询能力‌。结合数据库事务日志(如MySQL binlog)同步实现缓存与数据库的最终一致性‌。:在保证库存准确性的前提下,通过「缓存优先、异步同步、分级管控」实现高并发与高可用的平衡‌。基于用户地理位置、仓库负载状态、物流成本等因子,通过智能算法实时分配最优发货仓库‌。

2025-03-28 17:16:06 575

原创 Google PLA 营销库存服务设计技术难点与要点

Google PLA库存服务设计需以‌数据实时性‌和‌策略灵活性‌为核心,通过结构化Feed管理、动态库存同步、算法分层优化等技术手段,解决多源数据整合、冷启动效果差等难点,同时结合PMax广告的智能扩展能力提升整体ROI‌。

2025-03-28 17:02:59 355

原创 Shell模式删除运算

Shell中的模式删除运算(Pattern Removal)是一种强大的参数扩展功能,可以通过特定的操作符对变量值进行"掐头去尾"式的处理。文件路径操作字符串裁剪动态修改变量值批量处理场景。

2025-03-27 15:21:56 528

翻译 Data Lake vs. Data Warehouse vs. Data Lakehouse:理解它们的区别

数据湖以其原生格式存储大量数据,无论是结构化、半结构化还是非结构化。当它们与支持机器学习、预测分析和其他“大数据”计划的其他基础设施一起实施时,它们提供了最大的价值。可扩展性成本效益灵活性。它们可靠地处理PB级的数据,这使您能够根据需要以经济实惠的方式上下扩展存储。由于数据湖存储了各种数据,因此它们也可以适应不断变化的业务需求。数据湖的两个潜在缺点数据治理问题性能。数据湖存储了许多不同类型的数据,这可能会导致数据完整性问题。

2025-03-19 13:57:57 107

原创 InnoDB之B+树索引

InnoDB存储引擎支持以下几种常见的索引:B+树、全文索引、HASH索引。B+树索引就是传统意义上的索引,这是目前关系型数据库系统中查找最为常用和最为有效的索引。B+树索引的构造类似于二叉树,根据键值(Key Value)快速找到数据。注意 B+树中的B不是代表二叉(binary),而是代表平衡(balance),因为B+树是从最早的平衡二叉树演化而来,但是B+树不是一个二叉树。B+树索引并不能找到一个给定键值的具体行。B+树索引能找到的只是被查找数据行所在的页。

2024-09-18 11:29:51 1638

原创 Kafka高吞吐量的原因

Kafka速度的秘诀在于,它把所有的消息都变成一个的文件。通过mmap提高I/O速度,写入数据的时候它是末尾添加所以速度最优;读取数据的时候配合sendfile直接暴力输出。阿里的RocketMQ也是这种模式,只不过是用Java写的。单纯的去测试MQ的速度没有任何意义,Kafka这种“暴力”、“流氓”、“无耻”的做法已经脱了MQ的底裤,更像是一个暴力的“数据传送器”。

2024-09-13 11:18:04 2187

原创 MySQL5.7之数据库初始化过程

MySQL5.7源码安装、编译、初始化

2024-08-09 14:33:15 1027

原创 MySQL5.7之源码安装

MySQL5.7源码安装过程,包括源码下载、编译、打包、初始化数据目录

2024-08-09 14:25:36 635

原创 常见的两种洗牌算法

该算法的基本思想和 Fisher 类似,每次从未处理的数据中随机取出一个数字,然后把该数字放在数组的尾部,即数组尾部存放的是已经处理过的数字。每次进行洗牌算法后,就把得到的打乱结果对应的频数加一,重复进行 100 万次,如果每种结果出现的总次数差不多,那就说明每种结果出现的概率应该是相等的。这其实就是利用了蒙特卡罗方法:当打的点足够多的时候,点的数量就可以近似代表图形的面积。类似的,我们可以对同一个数组进行一百万次洗牌,统计各种结果出现的次数,把频率作为概率,可以很容易看出洗牌算法是否正确。

2024-08-08 21:46:08 1109

原创 webpack概念之术语介绍

当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个 依赖图(dependency graph),然后将你项目中所需的每一个模块组合成一个或多个 bundles,它们均为静态资源,用于展示你的内容。在上面的示例中,我们通过 output.filename 和 output.path 属性,来告诉 webpack bundle 的名称,以及我们想要 bundle 生成(emit)到哪里。为应用程序生成一个 HTML 文件,并自动将生成的所有 bundle 注入到此文件中。

2024-08-01 18:25:35 954

原创 Scala学习笔记一

Scala 使用package第一种方法和 Java 一样,在文件的头定义包名,这种方法就后续所有代码都放在该包中。比如:第二种方法有些类似 C#,如:第二种方法,可以在一个文件中定义多个包。注意:默认情况下,Scala 总会引入 java.lang._ 、 scala._ 和 Predef._,这里也能解释,为什么以scala开头的包,在使用时都是省去scala.的。数据类型Scala与Java具有相同的数据类型,具有相同的内存占用和精度。序号数据类型说明1Byte。

2024-08-01 10:40:08 744

原创 Scala 类和对象

类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。Scala中的类不声明为public,一个Scala源文件中可以有多个类。以上实例的类定义了两个变量 x 和 y ,一个方法:move,方法没有返回值。Scala 的类定义可以有参数,称为类参数,如上面的 xc, yc,类参数在整个类中都可以访问。

2024-08-01 10:38:02 355

原创 Scala Trait(特征)

Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大。与接口不同的是,它还可以定义属性和方法的实现。一般情况下Scala的类只能够继承单一父类,但是如果是 Trait(特征) 的话就可以继承多个,从结果来看就是实现了多重继承。以上Trait(特征)由两个方法组成:isEqual 和 isNotEqual。isEqual 方法没有定义方法的实现,isNotEqual定义了方法的实现。子类继承特征可以实现未被实现的方法。

2024-08-01 10:37:16 353

原创 Spring学习之前言

还有很多,具体的可以看官网https://spring.io/projects,Spring Framework就是Spring当中的核心框架,也可以称之为基础框架,任何框架都是和他来做集成。Spring由一个叫Rod Johnson的程序员在 2002 年最早提出并随后创建,Spring就是项目从配置到安全,从web应用到大数据——无论应用程序的基础设施需求是什么,都有一个Spring Project来帮助您构建它。当你学习一个框架时,了解它做了什么固然重要,但更重要的是了解它所遵循的原则。

2024-07-29 14:50:49 392

原创 Java源码解读之常量52429

在JDK8源码中java.lang.Integer有52429作为常量出现.

2024-06-26 22:20:40 402

原创 链表中环的入口节点

链表中环的入口节点给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。数据范围: n≤10000, 1

2024-06-22 16:25:50 582

原创 Java 类加载器与加载机制

需要注意的是,类加载过程是由 Java 虚拟机和类加载器共同完成的。Java 虚拟机提供了规范,定义了类加载过程的各个阶段,而类加载器负责执行具体的加载任务。Java 虚拟机默认提供了多个类加载器,它们按照一定的委托关系组成了类加载器层次结构,每个类加载器负责加载不同位置的类。

2024-06-13 18:55:04 718

原创 设计模式之MVC模式

将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller),以实现关注点分离。Web应用程序:用户通过浏览器(视图)发送请求,服务器端的控制器处理请求,模型进行数据处理。解决了应用程序中业务逻辑、数据和界面显示的耦合问题,使得开发和维护更加清晰和简单。当开发大型应用程序,需要清晰分离数据、业务逻辑和用户界面时,考虑使用MVC模式。当需要将数据、业务逻辑和界面显示分离,以便于独立开发和维护时。:负责数据和业务逻辑,通常包含数据存储、检索和业务规则。

2024-06-12 13:44:06 1021

原创 Spring Web MVC之过滤器Filter和拦截器HandlerInterceptor的区别和用法

Spring 框架有一个很重要的类。这个类继承了HttpServlet,HttpServlet实现了Servlet接口。相当于图片中的Servlet。所有和Spring框架相关配置,例如注解、xml配置、其他数据库连接配置、bean配置、拦截器配置等其他配置,例如常见的Controller、Service,都是在DispatcherServlet之后。Filter在DispatcherServlet之前执行,Interceptor在DispatcherServlet之后,Controller之前执行。

2024-06-12 11:33:34 1175

原创 设计模式之服务定位模式

在首次请求某个服务时,服务定位器在 JNDI 中查找服务,并缓存该服务对象。当再次请求相同的服务时,服务定位器会在它的缓存中查找,这样可以在很大程度上提高应用程序的性能。具体实现Xml解析初始化,按照服务定位模式来说需要一个服务定位器(Service Locator)的角色的实现,也就是这里的BeanFatory的实现,但是Spring在实现中,通过一个实现两个接口同实现两个功能。服务定位器模式通过提供一个集中的服务访问点,有助于简化服务访问逻辑,并提高应用程序的灵活性和可维护性。

2024-06-11 18:08:47 896

原创 spring AOP概念解释

面向方面编程(AOP)通过提供关于程序结构的另一种思考方式来补充OOP。OO将应用程序分解为对象的层次结构,而AOP将程序分解为方面或关注点。这使得诸如事务管理之类的关注点能够模块化,否则事务管理将跨越多个对象。(这种关注点通常被称为横切关注点。AOP框架是Spring的一个关键组件。

2024-06-07 23:26:39 793

原创 Servlet Listener(监听器)

监听器 Listener 是一个实现特定接口的 Java 程序,这个程序专门用于监听另一个 Java 对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即自动执行。

2024-06-03 18:11:19 1072

原创 Servlet重定向

当文档移动到新的位置,我们需要向客户端发送这个新位置时,我们需要用到网页重定向。当然,也可能是为了负载均衡,或者只是为了简单的随机,这些情况都有可能用到网页重定向。重定向请求到另一个网页的最简单的方式是使用 response 对象的 sendRedirect() 方法。该方法把响应连同状态码和新的网页位置发送回浏览器。

2024-06-01 12:02:59 911

原创 22、设计模式之解释器模式

给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。对于一些固定文法构建一个解释句子的解释器。如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。构建语法树,定义终结符与非终结符。构建环境类,包含解释器之外的一些全局信息,一般是 HashMap。编译器、运算表达式计算。可扩展性比较好,灵活。增加了新的解释表达式的方式。易于实现简单文法。

2024-05-26 08:06:49 557

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

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。一些方法通用,却在每一个子类都重新写了这一方法。有一些通用的方法。将这些通用算法抽象出来。在抽象类实现,其他步骤在子类实现。在造房子的时候,地基、走线、水管都一样,只有在建筑的后期才有加壁橱加栅栏等差异。西游记里面菩萨定好的 81 难,这就是一个顶层的逻辑骨架。

2024-05-25 07:08:43 500

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

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。很多时候我们总是需要记录一个对象的内部状态,这样做的目的就是为了允许用户取消不确定或者错误的操作,能够恢复到他原先的状态,使得他有"后悔药"可吃。通过一个备忘录类专门存储对象状态。客户不与备忘录类耦合,与备忘录管理类耦合。打游戏时的存档。Windows 里的 ctrl + z。浏览器中的后退。

2024-05-25 07:08:02 607

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

将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。在某些场合,比如要对行为进行"记录、撤销/重做、事务"等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将"行为请求者"与"行为实现者"解耦?将一组行为抽象为对象,可以实现二者之间的松耦合。通过调用者调用接受者执行命令,顺序:调用者→命令→接受者。

2024-05-24 14:27:57 593

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

允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。代码中包含大量与对象状态有关的条件语句。将各种具体的状态类抽象出来。通常命令模式的接口中只有一个方法。而状态模式的接口中有一个或者多个方法。而且,状态模式的实现类的方法,一般返回值,或者是改变实例变量的值。也就是说,状态模式一般和对象的状态有关。实现类的方法有不同的功能,覆盖接口中的方法。状态模式和命令模式一样,也可以用于消除 if…else 等条件选择语句。

2024-05-24 14:27:18 450

原创 17、设计模式之策略模式

在策略模式定义了一系列算法或策略,并将每个算法封装在独立的类中,使得它们可以互相替换。通过使用策略模式,可以在运行时根据需要选择不同的算法,而不需要修改客户端代码。

2024-05-23 08:47:50 417

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

提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。不同的方式来遍历整个整合对象。遍历一个聚合对象。把在元素之间游走的责任交给迭代器,而不是聚合对象。定义接口:hasNext, next。** 应用实例:** JDK中Collectoin的 iterator。它支持以不同的方式遍历一个聚合对象。迭代器简化了聚合类。在同一个聚合上可以有多个遍历。在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码。

2024-05-23 08:46:19 445

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

避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了。在处理消息的时候以过滤很多道。拦截的类都实现统一接口。Handler 里面聚合它自己,在 HandlerRequest 里判断是否合适,如果没达到条件则向下传递,向谁传递之前 set 进去。JS 中的事件冒泡。

2024-05-22 09:38:49 680

原创 14、设计模式之访问者模式

主要将数据结构与数据操作分离。稳定的数据结构和易变的操作耦合问题。需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,使用访问者模式将这些封装到类中。在被访问的类里面加一个对外提供接待访问者的接口。在数据基础类里面有一个方法接受访问者,将自身引用传入访问者。您在朋友家做客,您是访问者,朋友接受您的访问,您通过朋友的描述,然后对朋友的描述做出一个判断,这就是访问者模式。符合单一职责原则。优秀的扩展性。灵活性。具体元素对访问者公布细节,违反了迪米特原则。

2024-05-22 09:37:20 538

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

定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。使用面向对象技术,可以将这种依赖关系弱化。在抽象类里有一个 ArrayList 存放观察者们。拍卖的时候,拍卖师观察最高标价,然后通知给其他竞价者竞价。1、观察者和被观察者是抽象耦合的。2、建立一套触发机制。

2024-05-21 08:52:03 971

原创 12、设计模式之组合模式

将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。您想表示对象的部分-整体层次结构(树形结构)。您希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。树枝和叶子实现统一接口,树枝内部组合该接口。树枝内部组合该接口,并且含有内部属性 List,里面放 Component。

2024-05-21 08:47:21 272

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

运用共享技术有效地支持大量细粒度的对象。在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。1、系统中有大量对象。2、这些对象消耗大量内存。3、这些对象的状态大部分可以外部化。4、这些对象可以按照内蕴状态分为很多组,当把外蕴对象从对象中剔除出来时,每一组对象都可以用一个对象来代替。5、系统不依赖于这些对象身份,这些对象是不可分辨的。用唯一标识码判断,如果在内存中有,则返回这个唯一标识码所标识的对象。

2024-05-21 08:46:07 724

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

为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。降低访问复杂系统的内部子系统时的复杂度,简化客户端之间的接口。1、客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。2、定义系统的入口。客户端不与系统耦合,外观类与系统耦合。在客户端和复杂系统之间再加一层,这一层将调用顺序、依赖关系等处理好。1、去医院看病,可能要去挂号、门诊、划价、取药,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便。

2024-05-20 09:00:43 559

原创 9、设计模式之中介者模式

中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。

2024-05-20 08:37:50 169

原创 8、设计模式之装饰模式

动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀。在不想增加很多子类的情况下扩展类。将具体功能职责划分,同时继承装饰者模式。Component 类充当抽象角色,不应该具体实现。修饰类引用和继承 Component 类,具体扩展类重写父类方法。装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。

2024-05-19 08:03:12 1050

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

在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。

2024-05-19 07:58:07 1111

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

分离抽象实现: 将抽象部分与它的具体实现部分分离,使它们都可以独立的变化;独立的变化 就是 在一定程度上 进行解耦;组合方式: 通过组合的方式建立两个类之间的联系, 而不是继承;桥接模式类型: 结构型;桥接模式 相当于 使用桥梁 将两侧连接起来 , 这里指的是 使用桥梁 连接两个类 , 在两个类之间建立某种联系 , 可以通过继承 , 也可以通过组合 , 桥接模式 是采用 组合的方式 , 建立两个类之间的关系;合成复用原则 , 推荐优先使用组合 , 不是继承;

2024-05-18 16:51:44 932

kafka-2.10-0.8.2.2.jar

this is a jar of kafka-2.10-0.8.2.2

2016-01-03

php网页注册登录页面实例

这是我自己做的一个php网页登录注册页面实例代码,供大家参考!

2016-01-22

空空如也

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

TA关注的人

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