当前位置: 首页 > 面试经验 >

快手面经

优质
小牛编辑
92浏览
2023-05-05

快手面经

最近在准备面试,看了很多大厂的面经,抽空将快手面试的题目整理了一下,希望对大家有所帮助~

一面

  1. 简单介绍项目
  2. 知道哪些数据结构以及他们的特点
  3. 链表增删快,那如何提高其查询效率,有没有什么想法?
  4. B+树了解吗?B+树如何范围查询?B+树退化的极端情况是什么?
  5. 跳表了解吗?
  6. 大顶堆、小顶堆了解吗?
  7. 实现长地址请求到服务端,然后服务端重定向短地址给客户端,如何实现长短地址的互相映射?
  8. 那我现在有10份数据,有1000个线程来争抢,你要怎么处理?
  9. 分布式是什么?为什么要分布式?分布式又会有哪些问题?分布式系统是如何实现事物的?
  10. Redis集群了解吗?如何处理宕机的情况?Redis的同步策略?
  11. LRU算法了解吗?你会如何实现它?这个算法可以应用在哪些场景下?
  12. TCP为什么是三次握手?两次行不行?多次行不行?
  13. TCP的安全性是如何实现的?两台服务器之间可以同时建立多条TCP链接吗?怎么实现的?
  14. 客服端输入一个网址后,是如何拿到客服想要的数据的,是怎样在网络中传输的?
  15. cookie和session
  16. java有哪些锁?共享锁是什么?CAS?乐观锁和悲观锁?synchronied的底层原理?锁升级?死锁怎么形成的?如何破解死锁?

二面

  1. Java容器:List,Set,Map
  2. Map的遍历方式
  3. HashMap扩容为什么是扩为两倍?
  4. Java线程同步机制(信号量,闭锁,栅栏)
  5. 对volatile的理解:常用于状态标记
  6. 八种基本数据类型的大小以及他们的封装类(顺带了解自动拆箱与装箱)
  7. 线程阻塞几种情况?如何自己实现阻塞队列?
  8. Java垃圾回收。可达性分析->引用级别->二次标记(finalize方法)->垃圾收集 算法(4个)->回收策略(3个)->垃圾收集器(GMS、G1)。
  9. java内存模型
  10. TCP/IP的理解
  11. 进程和线程的区别
  12. http状态码含义
  13. ThreadLocal(线程本地变量),如何实现一个本地缓存
  14. JVM内存区哪里会出现溢出?
  15. 双亲委派模型的理解,怎样将两个全路径相同的类加载到内存中?
  16. CMS收集器和G1收集器
  17. TCP流量控制和拥塞控制
  18. 服务器处理一个http请求的过程
  19. 例举几个Mysql优化手段
  20. 数据库死锁定义,怎样避免死锁
  21. spring的aop是什么?如何实现的
  22. 面向对象的设计原则
  23. 策略模式的实现
  24. 操作系统的内存管理的页面淘汰 算法 ,介绍下LRU(最近最少使用算法 )
  25. B+树的特点与优势

三面

  • 自我介绍,说简历里没有的东西
  • 说几个你最近在看的技术(MySQL,多线程)
  • 口述了一个统计数据的场景题
  • 如果这个统计数据场景不用MySQL,而是用Java来实现,怎么做
  • 如果数据量过大,内存放不下呢
  • 用面向对象的思想解决上面提出的问题,创建出父类,子类,方法,说一下思路
  • 下一个场景,口述了一个登录场景,同学用线程池做登录校验,会有什么问题
  • 如何解决这些问题
  • 你给出的方案弊端在哪里,还有哪些方案

四面

  • 谈谈类加载机制。
  • hashmap和concurenthashmap
  • 16g机器,让你分配jvm内存怎么分配。
  • 机器慢了怎么排查。
  • 谈谈consul和zookeeper,还有服务发现机制。
  • 详细说明raft协议。
  • 谈谈consul和zookeeper区别。
  • 服务注册的时候发现没有注册成功会是什么原因。
  • 讲讲你认为的rpc和service mesh之间的关系。

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~

********

如果访问不了Github,可以访问*******。

*******

#java##快手#
 类似资料: