面试集锦
文章平均质量分 67
面试
四滴火
这个作者很懒,什么都没留下…
展开
-
【无标题】
简单介绍下项目情况,包括业务量,项目整体结构介绍下对spring cloud的理解redis使用场景,分布式锁使用场景zookeeper项目使用场景,选举机制工作过程中参与过哪些项目优化工作socket使用场景hashmap底层实现原理线程安全的hashmap有吗,底层实现原理线程池使用场景,使用注意事项表索引设计原则及注意事项介绍下java内存模型性能调优做过哪些1.spring cloud的理解SpringCloud不是一种技术!是一种生态Spring Cloud.原创 2022-04-25 22:49:15 · 2196 阅读 · 0 评论 -
面试-TopK
1.全局排序 O(n*lg(n))--快排2.局部排序,只排序topK个数,冒泡排序前k个,O(n*k)3.堆排序,O(n*lg(k))4.分治法,每个分支“都要”递归,例如:快速排序,O(n*lg(n))5.减治法,“只要”递归一个分支,例如:二分查找O(lg(n)),随机选择O(n)6.TopK的另一个解法:随机选择+partition7.比特位图法(bitmap)计数O(n)8.桶排 n个桶O(n)...原创 2021-04-10 11:30:53 · 194 阅读 · 0 评论 -
面试-时间复杂度
原创 2021-04-10 10:41:36 · 168 阅读 · 0 评论 -
面试-综合
东财https://my.oschina.net/u/4357988/blog/3348034hashmap为什么线程不安全?jdk1.7自动扩容时候,transfer的实现是头插法,反转链表,可能形成环形链表;jdk1.8自动扩容使用的尾插法,扩容时候一个entry的下标要不不变,要不变成原下标+原数组大小,虽然不会形成死循环,但是还是可能数据丢失的;一致性hashhttps://zhuanlan.zhihu.com/p/24440059虚拟节点解决hash环偏...原创 2021-03-28 12:36:36 · 119 阅读 · 0 评论 -
面试-MQ
部分摘自https://github.com/yuanguangxin/LeetCodeKafka中消息是以topic进行分类的,topic在物理层面又能以partition为分组,一个topic可以分成若干个partition。partition还可以细分为segment,一个partition物理上由多个segment组成,segment文件由两部分组成,分别为“.index”文件和“.log”文件,分别表示为segment索引文件和数据文件。这两个文件的命令规则为:partition全局的第一原创 2021-03-12 21:15:29 · 129 阅读 · 0 评论 -
面试-限流算法
部分转自https://blog.csdn.net/linhui258/article/details/81155622https://blog.csdn.net/weixin_41846320/article/details/959413611.计数器计数器算法是使用计数器在周期内累加访问次数,当达到设定的限流值时,触发限流策略。下一个周期开始时,进行清零,重新计数。此算法在单机还是分布式环境下实现都非常简单,使用redis的incr原子自增性和线程安全即可轻松实现。...原创 2021-03-10 22:50:18 · 168 阅读 · 0 评论 -
面试-CAP+BASE+ACID
CAP转自http://www.ruanyifeng.com/blog/2018/07/cap.html分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。本文介绍该定理。它其实很好懂,而且是显而易见的。下面的内容主要参考了 Michael Whittaker 的文章。一、分布式系统的三个指标1998年,加州大学的计算机科学家 Er原创 2021-03-01 23:05:15 · 113 阅读 · 0 评论 -
面试-秒杀下单
部分摘自https://github.com/yuanguangxin/LeetCode秒杀并发情况下库存为负数问题for update显示加锁 把udpate语句写在前边,先把数量-1,之后select出库存如果>-1就commit,否则rollback。update products set quantity = quantity-1 WHERE id=3;sele...原创 2020-03-11 23:11:44 · 306 阅读 · 0 评论 -
面试-三高
部分摘自https://github.com/yuanguangxin/LeetCode高并发系统的设计与实现在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存:缓存比较好理解,在大型高并发系统中,如果没有缓存数据库将分分钟被爆,系统也会瞬间瘫痪。使用缓存不单单能够提升系统访问速度、提高并发访问量,也是保护数据库、保护系统的有效方式。大型网站一般主要是“读”,缓存的...原创 2020-02-29 22:16:28 · 115 阅读 · 0 评论 -
面试-计算机基础
部分摘自https://github.com/yuanguangxin/LeetCode操作系统进程和线程进程是操作系统资源分配的最小单位,线程是CPU任务调度的最小单位。一个进程可以包含多个线程,所以进程和线程都是一个时间段的描述,是CPU工作时间段的描述,不过是颗粒大小不同。 不同进程间数据很难共享,同一进程下不同线程间数据很易共享。 每个进程都有独立的代码和数据空间,进...原创 2020-02-29 22:14:35 · 101 阅读 · 0 评论 -
面试-dubbo
部分摘自https://github.com/yuanguangxin/LeetCodeDubbo的容错机制失败自动切换,当出现失败,重试其它服务器。通常用于读操作,但重试会带来更长延迟。可通过 retries="2" 来设置重试次数 快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。 失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。 失败自...原创 2020-02-29 22:11:40 · 112 阅读 · 0 评论 -
面试-消息队列-Kafka
部分摘自https://github.com/yuanguangxin/LeetCode为什么需要消息队列解耦,异步处理,削峰/限流Kafka的文件存储机制Kafka中消息是以topic进行分类的,生产者通过topic向Kafka broker发送消息,消费者通过topic读取数据。然而topic在物理层面又能以partition为分组,一个topic可以分成若干个partitio...原创 2020-02-29 22:10:42 · 116 阅读 · 0 评论 -
面试-Spring
部分摘自https://github.com/yuanguangxin/LeetCode什么是三级缓存第一级缓存:单例缓存池singletonObjects。 第二级缓存:早期提前暴露的对象缓存earlySingletonObjects。(属性还没有值对象也没有被初始化) 第三级缓存:singletonFactories单例对象工厂缓存。创建Bean的整个过程getBean...原创 2020-02-29 22:09:47 · 104 阅读 · 0 评论