建造者模式 建造者模式1. 概念 定义 将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。 使用场景 当对象有复杂的内部结构(很多属性) 当创造一个对象 需要很多步骤时 , 适合使用建造者模式 ; 当创造一个对象 只需要一个简单的方法就可以完成 , 适合使用工厂模式 优缺点 优点: 创建和使用分离 建造类之间 相互独立 , 在 一定程度上解耦 ; 缺点 : 增加类数 2023-09-26 设计模式
简单工厂模式 简单工厂模式1. 概念 定义:由一个工厂对象决定创建出哪一种对象的实例 优缺点: 优点:只需要传入一个参数,就可以获取你所需要的对象,而无需知道细节 缺点:工厂的职责过重,增加新的产品,需要修改工厂的判断逻辑,违反开闭原则 2. 代码需求: 需要根据电影类型创建电影 2.1 版本1:常规写法123456public class JavaVideo extends Video { 2023-09-11 设计模式
mysql索引常见面试题 1. mysql 为什么使用B+树? 二叉树:单边增长的场景会导致全表扫描。 红黑树:相对平衡,比二叉树性能好,大数据下,红黑树的高度过高,会造成磁盘IO频繁。 Hash: 不支持范围查找和排序 B树 VS B+树: 更高的节点利用率 B+树与B树的一个关键区别在于B+树的所有数据都存储在叶子节点,而非叶子节点只存储键值和指向子节点的指针。这样可以使非叶子节点包含更多的键值和指针,提 2023-06-13 数据库
zookeeper常见面试题 1. Zookeeper集群中有几个角色Zookeeper集群中有三个主要角色: Leader:负责处理写请求和同步数据到Followers。 Follower:处理读请求,参与选举过程。 Observer:不参与投票选举,仅同步Leader的数据,用于扩展读取性能。 2. Zookeeper如何保证数据一致性?Zookeeper使用一种称为ZAB协议(Zookeeper Atomic Br 2023-05-29
二叉树算法题 1. 基本二叉树遍历1. 前序遍历(Pre-order Traversal)前序遍历的顺序是:根节点 -> 左子树 -> 右子树。 算法步骤: 访问根节点。 前序遍历左子树。 前序遍历右子树。 12345678910public class BinaryTree { // 前序遍历 - 递归 public void preOrderTraverse(TreeN 2023-05-26 LeetCode
java锁常见面试题 1. sychronizedSynchronized是Java中解决并发问题的一种最常用的方法,Synchronized的作用主要有三个: 确保互斥访问。确保被同步的方法或代码块在同一时刻只能由一个线程执行,其他线程必须等待该线程执行完毕后才能进入。 保证可见性。保证线程间对共享变量的修改是可见的。具体来说,当一个线程修改了共享变量的值后,synchronized 关键字确保其他线程能够立即看到 2023-05-21 Java基础
技术选型 1. 技术选型所要考虑的 切合业务:在当前的场景以及后续的一些模块的设计,都可以满足我们的业务 社区活跃度:活跃多,使用的人多,优点缺点都可以呈现出来,包括会遇到的问题 团队技术水平:针对开发周期的长短,需要考虑我们是采用老技术还是新技术。如果是新技术,团队没有几个人接触过的话,那么就需要整体的一个培训,来提高团队的技术水平。 版本更新迭代周期:如果版本更新迭代的比较快,可以优先考虑,因为如果你遇 2023-04-24