![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
常见面试题
文章平均质量分 69
star++
致力于研究Apache开源项目
展开
-
平衡二叉查找树和多路查找树
红黑树也是一种平衡二叉树,但是定义不同,红黑树要求是:每个节点要么是红色节点要么是黑色节点,叶子节点都是黑的,如果节点是红的,那么子节点一定是黑色的,不可以出现连续的红节点,可以出现连续的黑节点,任何子树的黑节点个数需要保证相同。定义一个m阶的树,要求每个节点都只能包含m-1个节点,也意味着每个节点只能有m-1个子节点,同时也要满足平衡树的定义,左右子树高度差不能大于1,但是全量数据只存在叶子节点,非叶子节点只存关键检索数据。缺点:当进行删除节点和新增节点,树进行自平衡的时候,需要频繁树旋转,性能比较低。原创 2024-07-03 21:45:18 · 288 阅读 · 0 评论 -
红黑树B树B+树区别及其适用场景
红黑树,B树,B+树的深度理解原创 2022-08-22 16:20:47 · 3418 阅读 · 0 评论 -
面试题之常见解决方案
秒杀系统设计原创 2020-07-01 23:15:01 · 1004 阅读 · 0 评论 -
常见面试题之设计模式
设计模式分类 创建模式:工厂模式,单例模式,原型模式等 结构模式:适配器,组合,装饰器,门面,代理等 行为模式:模板方法,责任链,策略,观察者等简单工厂,工厂方法,抽象工厂 简单工厂:提供一个静态方法,根据传入的不同参数创建不同的对象(同一个父类,不同实现) 工厂方法:需要两种或者以上的产品,提供一个接口,一个抽象方法,实现多个工厂,不同工厂生产不同类型的产品 对生产的产品做简单的分配,单从大范围来看,还是一种产品。 抽象工厂:需要生产一个产..原创 2020-06-21 11:04:02 · 246 阅读 · 2 评论 -
常见面试题之jvm内存回收和分配策略
如何判断对象可回收根据可达性分析算法来判断一个对象是否可回收,可达则不可回收,否则可回收;从GC Roots对象开始,有引用链,存活,没有则可回收,属于GC Roots类型对象如下:1.方法中的 参数,局部变量,临时变量 (关心---堆区回收)2.静态变量(关心---方法区回收)3.字符串常量的引用 (关心---方法区回收)4.本地方法(native JNI)引用的对象5.被同步锁持有的对象 (关心---堆区回收)class Test{ //静态变量 private stat..原创 2020-06-17 01:27:44 · 287 阅读 · 0 评论 -
常见问题之mysql
有哪些数据类型1 整数类型 tinyInt,smallint,mediumint,int(integer)2 小数类型 float,double,decimal(m,d)3 日期类型 year,time,date,datetime,timestamp4 文本,二进制类型 CHAR(M) ,VARCHAR(M),BLOB…5 枚举类型什么是索引索引是一种为了更快检索数据库存储数...原创 2020-04-19 10:47:32 · 143 阅读 · 0 评论 -
常见问题之redis
redis过期键删除策略1.立即删除:有定时处理器处理,发现键过期立刻删除(对cpu不友好,对内存友好)2.惰性删除:当需要用某个键时再判断是否需要删除,没用到的键一直在(对cpu友好,对内存不友好)3.定时删除:定时删除就是在某个时间点,去定时删除某些过期的键(对cpu影响小,对内存消耗少,需要控制好时长和频率)...转载 2020-04-14 23:29:49 · 218 阅读 · 0 评论 -
常见问题之线程池
为什么要用线程池1.降低资源消耗:通过重用已经创建的线程来降低线程创建和销毁的消耗2.提高响应速度:任务到达时不需要等待线程创建就可以立即执行3.提高线程的可管理性:线程池可以统一管理、分配、调优和监控线程的四种创建方式1.Executors.newFixedThreadPool 创建一个coreSize=maxSize=n的线程池,每个线程不限制空闲时间,一直阻塞等待任务(Li...原创 2020-04-14 21:03:19 · 252 阅读 · 0 评论