自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RabbitMQ的三种消息分发方式

一旦数量达到配置的数量, RabbitMQ 将停止在通道上传递更多消息,除非至少有一个未处理的消息被确认,例如,假设在通道上有未确认的消息 5、6、7,8,并且通道的预取计数设置为 4,此时RabbitMQ 将不会在该通道上再传递任何消息,除非至少有一个未应答的消息被 ack。本身消息的发送就是异步发送的,所以在任何时候,channel 上肯定不止只有一个消息,另外来自消费 者的手动确认本质上也是异步的。当然这将使吞吐量变得很低,特别是消费者连接延迟很严重的情况下,特别是在消费者连接等待时间较长的环境中。

2023-01-09 21:48:00 886

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

建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。建造者模式一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式的结构图如下:我们使用KFC套餐实例来进一步理解建造者模式该类是复杂的产品对象,是建造者要创建的目标对象。抽象建造者MealBuilder该类作为具体建造者的父类,其中声明了对复杂对象部件的组装方法。具体建造者类

2022-12-05 16:26:12 260

原创 两种单例模式详解(内含懒汉式的双重校验锁详解)

23种设计模式之单例模式详解。单例模式通常包含饿汉式与懒汉式。懒汉式使用了双重校验锁。本文将会讲解两种单例的区别。以及深入讲解双重校验锁的懒汉式。懒汉式的双重校验锁。

2022-12-03 17:40:01 2631 1

原创 23种设计模式之工厂方法模式

在简单工厂模式中只提供一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它需要知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,需要在其中加入必要的业务逻辑,这违背了“开闭原则”。在工厂方法模式中,我们不再提供一个统一的工厂类来创建所有的产品对象,而是针对不同的产品提供不同的工厂,系统提供一个与产品等级结构对应的工厂等级结构。

2022-12-02 20:34:07 221

原创 23种设计模式之简单工厂模式

简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。简单工厂模式的要点在于:当你需要什么,只需要传入一个正确的参数,就可以获取你所需要的对象,而无须知道其创建细节。简单工厂模式结构比较简单,其核心是工厂类的设计,

2022-12-01 23:03:47 95

原创 Java位运算以及利用位运算表示加减乘除

位运算符主要用来对操作数二进制的位进行运算。按位运算表示按每个二进制位(bit)进行计算,其操作数和运算结果都是整型值。Java 语言中的位运算符分为和两类。

2022-11-12 15:44:25 1151

原创 Java8中Stream的用法

学习如何使用Stream APIStream APl ( java.util.stream)把真正的函数式编程风格引入到Java中。这是目前为止对Java类库最好的补充,因为Stream API可以极大提供Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。

2022-11-06 14:02:35 2188

原创 Java函数式编程

Java中的函数式编程,超级通俗易懂,函数式编程中的函数指的并不是编程语言中的函数(或方法),它指的是数学意义上的函数,即映射关系(如:y = f(x)),就是 y 和 x 的对应关系。在函数式编程中,输入一旦确定了,输出都确定了,函数调用的结果只依赖于传入的输入变量和内部逻辑,不依赖于外部,这样的写出的函数没有副作用。/**//非函数式编程,该方法的结果不只是取决于参数,还取决于类的全局变量,因此不是函数式编程 public int add(int b) {

2022-11-06 13:00:25 422

原创 云服务器搭建redis主从复制以及哨兵模式(附踩坑记录)

redis的主从复制与哨兵模式的配置以及踩坑记录,哨兵模式不能检测到从服务器,主服务器shutdown之后从服务器不能切换为主服务器。

2022-10-10 18:44:48 392

原创 Java实现简单的大顶堆

由于我们要用到比较器的compare()方法,而该方法的两个参数应当是E或者E的超类,因此选择使用

2022-10-02 15:00:29 477

转载 Dependencies 和 Libraries 的区别

现在的项目大多数人更愿意使用 Maven 等工具构建,但是在学习 Project Structure 这块的时候,对 Modules - Dependencies 和 Libraries 的不理解,致使我总觉得我不会导入 jar 包,深入研究后总结一下。用过 Eclipse 的人都知道,导包的时候会把包放到一个 lib 文件夹下,然后 Add Build Path,至此导包完成。那么在 idea 中 Modules - Dependencies 和 Libraries 分别是什么?

2022-09-15 21:29:33 645

原创 Springboot中@Autowired为何获取了我们没有注入的Bean?

为何我们能通过@Autowired注解自动装配一些我们没有交给IOC容器的类?

2022-09-14 18:50:45 311

原创 idea中 .gitignore文件的使用

idea下如何使用.gitignore文件,以及.gitignore的模板

2022-09-13 18:39:03 2210

空空如也

空空如也

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

TA关注的人

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