09 2019 档案
摘要:B树和B+树 标签(空格分隔): 数据结构 参考/转载 : https://www.cnblogs.com/nullzx 1. B树 1.1 B树的定义 B树也称为B-树, 它是一颗多路平衡的查找树, 当我们描述一颗B树的时候需要指定他的阶数, 阶数表示了一个节点最多有多少个孩子节点, 一般用m表示
阅读全文
摘要:Java内存模型(JMM) 标签(空格分隔): Java 架构 线程/进程 JMM 本身是一种抽象的概念并不真实存在, 它描述的是一组规则或规范, 通过这组规范定义了程序中各个变量(包括实例字段, 静态字段和构成数组对象的元素)的访问方式. JMM关于同步的规定. 1. 线程解锁之前, 必须把共享变
阅读全文
摘要:深克隆和浅克隆 标签(空格分隔): 设计模式 原型模式: 将一个对象作为原型, 通过对其进行复制而克隆出多个和原型类似的新实例. 浅克隆 浅克隆: 被复制对象的所有基本变量都含有和原来变量完全相同的值, 而其他所有的引用对象任然指向原来的对象. 换言之, 浅克隆仅仅复制锁考虑的对象, 而不复制它所引
阅读全文
摘要:MVC和三层架构 标签(空格分隔): 架构 设计模式 三层架构 三层架构指的是: 视图层(View),服务层(Service)和持久层(DAO). 他们分别负责不同的功能. 单纯就是指后台的设计架构 这种架构模式是从微软来的, 微软提倡这种架构模式并且在 零几年的时候给了一个宠物商店的Demo 用于
阅读全文
摘要:Java线程 标签(空格分隔): 面试 线程/进程 1. sleep join yield有什么区别 多线程的五种状态: 新建状态, 就绪状态, 运行状态, 阻塞状态, 死亡状态. 新建状态: 当new 一个线程的时候, 程序还没有运行其中的` 代码. 就绪状态: 一个新创建的线程并不会自动开始,
阅读全文
摘要:RocketMQ的高可用集群部署 标签(空格分隔): 消息队列 部署 1. RocketMQ 集群物理部署结构 物理部署结构 : 单点,供 和 获取 地址, 类似于注册中心. : 产生并发送消息. : 接收并消费消息. : 消息暂存,消息转发. 1.1 Name Server 做的是 的寻址服务,
阅读全文
摘要:消息队列 标签(空格分隔): 面试 消息队列 1. 为什么使用消息队列 会用消息队列, 但是为什么要用消息队列呢? 系统解耦 异步 削峰填谷 1.1 解耦 解决因为数据处理能力不同, 薄弱阶段一旦崩溃, 导致的一死全死. 假设 系统A 发布消息, 此时系统B,C,D 接收并处理消息. 这个时候我们需
阅读全文
摘要:RabbitMQ的高可用集群部署 标签(空格分隔): 消息队列 部署 1. RabbitMQ部署的三种模式 1.1 单一模式 单机情况下不做集群, 仅仅运行一个RabbitMQ. 1.2 普通模式 默认模式,以两个节点( , )为例来说明. 对于 来说,消息实体只存在于其中一个节点 (或者 ), 和
阅读全文
摘要:Custom nnotation 标签(空格分隔): Java注解 1. The concept of annotation An annotation is a form of metadata, that can be added to Java source code. Classes, me
阅读全文

浙公网安备 33010602011771号