摘要: 生产者消费者模型是我们学习多线程知识的一个经典案例,一个典型的生产者消费者模型如下: public void produce() { synchronized (this) { while (mBuf.isFull()) { try { wait(); } catch (InterruptedExc 阅读全文
posted @ 2021-05-16 19:29 HeliusKing 阅读(332) 评论(0) 推荐(0) 编辑
摘要: JDK中为什么有了Synchronized还有Lock接口呢? 当回答这个问题的时候,有人会说是因为性能的原因。但你应该知道,自从JDK1.6以后,对synchronized进行了优化之后,synchronized又开始被推荐使用了,何况性能问题通过优化大多都是可以解决的,所以性能并不是Lock接口 阅读全文
posted @ 2021-05-16 16:03 HeliusKing 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 字节缓冲区切片 直接看个例子: @Test public void test1() { byte[] bytes = new byte[]{1,2,3,4,5}; ByteBuffer byteBuffer = ByteBuffer.wrap(bytes); //使用slice之前,一般先调用pos 阅读全文
posted @ 2021-01-10 22:48 HeliusKing 阅读(3706) 评论(0) 推荐(1) 编辑
摘要: Kafka多个消费者的小例子 public class FirstMultiConsumerThreadDemo2 { public static final String brokerList = "10.211.55.3:9092"; public static final String top 阅读全文
posted @ 2020-11-29 20:20 HeliusKing 阅读(1374) 评论(0) 推荐(0) 编辑
摘要: 设计模式之迭代器模式 迭代器模式是一种行为设计模式, 让你能在不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素。 这里我们认为集合(或者称容器)的作用是用于存储数据,而遍历元素这个事情与存储元素应该分开, 以满足开闭原则、单一职责原则。Java集合框架就大量使用了迭代器模式 阅读全文
posted @ 2020-11-25 00:07 HeliusKing 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 设计模式之责任链模式 在软件设计中使用责任链模式来实现松散耦合,将客户端的请求传递给对象链进行处理。然后链中的对象将自己决定谁将处理请求,以及请求是否需要被发送到链中的下一个对象。 一、JDK中的应用 如JDK中的switch、try-catch中的多个catch块等。 二、举个例子 责任链模式的一 阅读全文
posted @ 2020-11-22 20:33 HeliusKing 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 亦称:Visitor Design Pattern 🔥 意图:访问者模式是一种行为设计模式, 它能将算法与其所作用的对象隔离开来。 一、代码示例 例如,考虑一个购物车,我们可以在其中添加不同类型的项目(元素)。当我们点击结帐按钮时,它会计算要支付的总金额。现在我们可以在item类中使用计算逻辑,也 阅读全文
posted @ 2020-11-01 14:19 HeliusKing 阅读(176) 评论(6) 推荐(0) 编辑
摘要: @ComponentScan的scopeResolver属性详解 一、源码说明 /** * The {@link ScopeMetadataResolver} to be used for resolving the scope of detected components. */ Class<? 阅读全文
posted @ 2020-10-25 17:22 HeliusKing 阅读(514) 评论(0) 推荐(0) 编辑
摘要: ES中的文档更新 示例: PUT /ecommerce/product/1 { "name" : "jiaqiangban gaolujie yagao", "desc" : "gaoxiao meibai", "price" : 30, "producer" : "gaolujie produce 阅读全文
posted @ 2020-10-07 19:32 HeliusKing 阅读(1019) 评论(0) 推荐(0) 编辑
摘要: Elasticsearch是一个高度可伸缩的开源全文搜索和分析引擎,可以用来存储、搜索、分析大容量数据,快速且近乎实时。通常为具有复杂搜索功能和需求的业务提供底层技术支持。 本教程全部以ElasticSearch6.5版本为例进行讲解 一、安装 官方提供了好几种安装方式: 我们采用第一种安装方式进行 阅读全文
posted @ 2020-10-06 14:37 HeliusKing 阅读(180) 评论(0) 推荐(0) 编辑