摘要:
线性表 1. 定义 最简单的一种数据结构。形如A1、A2、A3….An这样含有有限的数据序列 2. 常用的两种形式: 1. 顺序表示(其实就是数组) 2. 链表表示 3. 顺序实现 ArrayList 1. 初始化 默认初始化容量为0,首次调用add方法,容量初始化为10 2. 1.5倍扩容 3. 阅读全文
摘要:
java stream 原理 需求 1. 最直白的实现 缺点 1. 迭代次数过多 2. 频繁产生中间结果,性能无法接受 2. 平常写法 缺点 1. 具体业务与算法混在一起,不利于代码复用 2. 耦合性太强,代码不清晰 3. 责任链模式解耦 4. java stream 实现 优点 1. 开发者是需要 阅读全文
摘要:
SpringBoot 分布式session实现 1. 什么是分布式session 在集群环境中,不得不考虑的一个问题是用户访问产生的session如何处理。如过不做任何处理,用户将出现频繁俸禄的现象,比如集群中存在A、B两台服务其,用户第一次访问网站时,Nginx通过负载均衡机制将用户请求转发到A节 阅读全文
摘要:
1. 为什么使用Mock? 依赖外部服务 TDD 部分依赖未实现 测试实现分离 单元测试的思路就是我们想在不涉及依赖关系的情况下测试代码。这种测试可以让你无视代码的依赖关系去测试代码的有效性。 2. mock优点 提前创建测试; TDD(测试驱动开发) 团队可以并行工作 提供文档后,测试人员即可写测 阅读全文
摘要:
ribbon 详解 1. 顶层架构 ![ribbon架构] 2. 简单的示例:使用ResourceTemplate方式 3.实现: 3.1 关键对象 明显,最终生成的关键对象RibbonRequest,使用的时观察者模式,底层实现肯定会使用RxJava或者Hystrix。 3.2 关键实现:Hyst 阅读全文
摘要:
Archaius 原理 Archaius是什么? Archaius提供了动态修改配置的值的功能,在修改配置后,不需要重启应用服务。其核心思想就是轮询配置源,每一次迭代,检测配置是否更改,有更改重新更新配置。 一个简单的例子: 1. 获取配置源 2. 定义调度器 3. 定义动态配置 4.简单单元测试 阅读全文
摘要:
RxJava 心无旁骛 我只关心持有的这只股票,第一时间作出准确判断 张三最近有了一笔闲钱,为了能有一个比较好的收益,他经过研究,最终选择ABC这只股票。股市瞬息万变,张三需要时刻关注ABC股票的价格走势力,以便第一时间作出决策(加仓,减持保收益)。上市公司股票是透明的投资,李四也拥有ABC这只股票 阅读全文
摘要:
``` import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future;... 阅读全文
摘要:
SpringCloud+Consul 服务注册与服务发现 1. 服务注册: 在Spring.factories有一段: 这是SpringCloud时Consul实现服务注册的关键。 发现有一个ConsulLifecycle的bean注入: ConsulLifecycle继承自AbstractDisc 阅读全文
摘要:
EndPoint详解 EndPoint主要用于暴露一些SpringMvc内部运行的信息,通常是通过SpringMvc的请求地址获取相关信息。如/health获取健康检查信息。 简单单元测试 url映射 HandlerMapping使用EndpointHandlerMapping,重写了registe 阅读全文