快手面经总结(2024最新)

快手

面经1-一面

开始先是手撕算法两道

  1. 自我介绍
  2. 两道手撕
    1. 将字符串转化为整数 (这里当时出现溢出值问题,进行了思考解决,写了两种方式)
    2. synchronize , 可以使用的几种形式,代码写出

操作系统 和 数据结构

  1. hash解决冲突 ( 开放定址法、链地址法、再哈希法、建立公共溢出区 )
  2. 上述四种方式详细的过程、思路
  3. 链地址法和再哈希法之间的关联和区别
  4. 两者分别适用场景
  5. 两者底层的数据结构,关联和区别
  6. 链表和数组的底层结构设计、关联、区别、应用场景

常用算法

  1. 常用的排序算法 ( 冒泡、堆、快速、桶、选择、插入 )
  2. 堆排序和选择排序使用场景上有什么区别
  3. 选择排序和堆排序对于资源的利用 ( 选择排序适合数据量少的情况、堆排序适合数据量多的情况,资源利用率、设计思路 )
  4. 常用的查找结构都有什么? ( 二分查找法、插值法、hash查找、分块查找、树表查找 )

数据结构

  1. b树和b+树和红黑树的设计思路、结构区别、使用区别
  2. 队列和栈有什么区别
  3. 他们的使用场景 ( 栈:数据匹配、数据反转;队列:任务队列、共享打印机 )

Jvm

  1. jvm内存模型
  2. jvm垃圾回收算法
  3. jvm垃圾回收器
  4. cms、g1的设计思路、关联和区别、垃圾回收阶段的不同
  5. 让你设计系统中进行选择其中一个回收器,你的想法是什么

使用框架、底层原理

  1. 在你的开发中最常使用的框架
  2. SpringBoot常用注解
  3. RestController和Controller有什么区别
  4. 你在完成项目的过程中是怎么处理异常的 (全局异常梳理)
  5. 全局拦截器的设计、项目中实现 (注解、类)
  6. Aop的了解、怎么使用
  7. Aop底层实现( JDK、CGLib、动态代理实现 )
  8. asm是什么 (字节码增强器)

MySql

  1. Mysql事务隔离级别
  2. 什么情况下使用读已提交
  3. 对于脏读的理解

redis

  1. 对于redis的理解
  2. redis在项目中进行怎么样的使用
  3. redis 为什么读取速度那么块 (io、单线程、内存)
  4. 为什么redis单线程会快 (完全基于内存、单线程避免不必要的上下文切换、cpu消耗、加锁问题。。。)
  5. 对于很多文件和数据,怎么进行数据的查找、排序,使用什么样的数据结构 (类似于TopK、这个主要是让你进行优化、类似于位图、hash、过滤器之类的)
  6. 反问:
    1. 对于部门的业务、技术栈
    2. 对我的建议、和整个面试的感觉

分享一份大彬精心整理的大厂面试手册,包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等高频面试题,非常实用,有小伙伴靠着这份手册拿过字节offer~

需要的小伙伴可以自行下载

链接:https://pan.xunlei.com/s/VNgU60NQQNSDaEy9z955oufbA1?pwd=y9fy#

备用链接:https://pan.quark.cn/s/cbbb681e7c19

面经1-二面

Java基础

  1. 自我介绍
  2. 抽象类和接口有什么区别
  3. 在使用过程中,接口和抽象类的选择以及使用场景

计网、Linux

  1. http 和j https 的区别
  2. https 过程中都使用哪些加密的算法 ( 对称加密、非对称加密 )
  3. 都怎么使用的,这些j加密算法的理解
  4. Linux都是用过哪些常用命令 (cat、less、tail、grep、wc…)
  5. 查看系统内存 ( top )
  6. 查看系统内存,返回多个指标,怎么查看内存的占用率
  7. 怎么将系统内存显示的数据进行排序

Java基础加深、线程、锁、数据机构等等

  1. java里面的类加载器的设计
  2. 类加载器的类之间的可见性 (委托机制、单一性、可见性)
  3. 如果父级对子级进行调用,会出现什么异常
  4. 线程都有哪些状态
  5. blocking和waiting有什么区别吗
  6. 如果是sleep(1000) 会让线程进入什么状态
  7. synchronize的使用流程
  8. java中的原子类实现原理
  9. 对CAS的了解
  10. 对CAS底层了解
  11. HashMap的底层实现原理
  12. HashMap的put流程
  13. ConcurrentHashMap的实现原理

框架Spring,代理

  1. Spring的Aop的底层实现
  2. 动态代理的了解 ( 见上面文章 )
  3. 静态代理和动态代理的区别
  4. 对动态代理性能的了解
  5. 浅拷贝和深拷贝的区别
  6. 手撕 : topK问题 ( 堆、优先队列、快排、冒泡 )
  7. 大顶堆小顶堆的设计思路

收尾的小问题

  1. 在实习中最有成就感的项目
  2. 对抖音和快手的看法
  3. 反问
    1. 业务的具体方向
    2. 对我的整体感觉和建议

面经1-三面

  1. 自我介绍
  2. 介绍一个你最得意的项目
  3. 介绍一下你的实习经历
  4. 实习项目中介绍一个你印象最深的需求
  5. 这个需求的设计、使用的框架详细介绍
  6. 这个项目的上线效果怎么样的
  7. 上线需要的什么问题
  8. 你在实习公司的转正情况
  9. 还有其他的offer吗
  10. 你对快手怎么看的
  11. 面试官主动介绍部门
  12. 反问
    1. 部门的业务、地点 ( 因为之前面试的组hc没了,转到隔壁组,重新问的业务方面 )
    2. 对我整体面试看法 ( 说的是看我之前面试,聊的挺详细的,面评也不错,等hr )

面经1-HR面试

  1. 面试官先自我介绍了
  2. 最近2-3年,挑一个最有代表性的一件事
  3. 你为什么觉得这件事最有代表性呢
  4. 在你的整体实习的话,给自己打分你会打几分 、10分制 ( 我打的8分 )
  5. 你都做了那些事情,让你打的8分
  6. 那你觉得从那些手段方法提升剩下的2分呢
  7. 你完成实习之后,有哪些收获呢
  8. 考虑提前实习吗
  9. 毕业之后的未来规划
  10. 之后的定居城市怎么想的
  11. 还有什么进行的面试流程吗
  12. 你心中对这些公司的排序 ( 地点、技术、前景 )
  13. 反问
    1. 什么时候出结果
    2. 对我的整体感觉

面经2-一面

1、聊项目

2、线程的几种状态

3、线程池的状态

4、线程池的运行过程

5、如何合理地配置线程池

6、怎么实现阻塞队列

7、怎么监控线程池的运行状态,答的用一些线程监控的工具,面试官说指代码层面上,只争对线程池,没答上

线程池执行类ThreadPoolExecutor给了相关的API来监控某一个线程池的执行状态,能实时获取线程池当前活动线程数、正在排队线程数、已执行线程数、总线程数等。

ThreadPoolExecutor tpe = ((ThreadPoolExecutor) es);
while (true) {
    System.out.println();
 
    int queueSize = tpe.getQueue().size();
    System.out.println("当前排队线程数:" + queueSize);
 
    int activeCount = tpe.getActiveCount();
    System.out.println("当前活动线程数:" + activeCount);
 
    long completedTaskCount = tpe.getCompletedTaskCount();
    System.out.println("执行完成线程数:" + completedTaskCount);
 
    long taskCount = tpe.getTaskCount();
    System.out.println("总线程数:" + taskCount);
 
    Thread.sleep(3000);
}

8、java中有几种锁

9、锁升级的过程(自旋的缺点,CAS有什么不足)

10、对象头的结构

11、synchronized和ReentrantLock区别

12、ReentrantLock是怎么实现的,讲到AQS,顺便说了AQS

13、还有哪些基于AQS的同步工具

14、volatile作用

15、volatile怎么保证可见性和防止指令重排序

16、mysql的隔离级别

17、事务acid

18、mysql如何保证acid

19、redo log和undo log区别

20、redo log和undo log是如何生成的(这块细节忘了,只说了先写内存,然后再刷盘)

21、介绍几种消息队列

22、说说rabittmq架构(说了分为虚拟机、交换机和队列,然后说了下消息的传递过程,面试官否认了,说这只是应用层面)

23、jvm的内存模型

24、对象什么情况会进去老年代

25、spring ioc aop

26、注解底层怎么实现的(动态代理)

27、注解失效有哪些原因(自己还经历过@Transaction失效的bug的,当时没答上来,被自己气死)

28、bean的加载过程

算法:有序数组生成平衡二叉树,当时已满60分钟,面试官给了5分钟的时间限制,看我思考了一会,问我有没有思路,我说暂时还没,然后就换了一道题

面经2-二面

1、聊项目

2、mysql默认隔离级别

3、如何实现可重复读

4、如何解决幻读

5、间隙锁和nextkey锁

6、mysql锁是锁的什么(索引)

7、mysql的索引结构,有什么优点

8、怎么实现读写分离

9、主从复制是怎么实现同步的,答传bin log文件,后续数据更新怎么同步,答mysq不了解,但我知道redis主从复制后续是通过一个复制缓存区来记录新增的命令,通过发送这些命令实现同步

10、说说redis架构(单线程,io多路复用)

11、redis的底层数据结构知道吗(只知道用到了跳表,然后说了下跳表)

12、缓存穿透和缓存雪崩,解决方法

13、缓存和数据库怎么保证一致性

14、说说threadlocal怎么实现的

15、threadlocalmap中key为啥要用弱引用,key被gc后value怎么办

16、说说四种引用

17、spring事务传播机制

18、spring如何解决循环依赖

19、说说tcp协议

20、tcp如何保证不会接受重复的报文

21、tcp如何保证有序

算法:lc124. 二叉树中的最大路径和

部门:商业化技术部

面经2-三面

  1. 自我介绍
  2. Redis 是单线程还是多线程?为什么快?
  3. IO多路复用和非阻塞IO? IO多路复用提升了什么性能? IO多路复用提升了CPU哪方面的指标
  4. 线程池使用过吗?线程池的运行原理?
  5. IO密集型和CPU密集型的区别
  6. IO密集型的线程数配置过多会对CPU有什么影响?
  7. Zookeeper 的原理
  8. 为什么使用Zookeeper
  9. Zookeeper为什么要主从,选举机制
  10. MySQL的主从是什么原理
  11. TCP为什么是可靠的
  12. 能提前实习吗?
  13. 未来三到五年的规划?
  14. 算法题 lc简单题
  15. 能来提前实习吗?

反问:对应届生的要求。

最后给大家分享200多本计算机经典书籍PDF电子书,包括C语言、C++、Java、Python、前端、数据库、操作系统、计算机网络、数据结构和算法、机器学习、编程人生等,感兴趣的小伙伴可以自取:

200多本计算机经典书籍PDF电子书:https://pan.xunlei.com/s/VNlmlh9jBl42w0QH2l4AJaWGA1?pwd=j8eq#

备用链接:https://pan.quark.cn/s/3f1321952a16

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/301106.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【认知计算】《智能追踪》

故事背景科技相关: 认知计算 意在使计算机系统能够像人的大脑一样学习、思考,并做出正确的决策。 模仿大脑从经验中学习,发现不同事物之间的联系,进而实现逻辑推理和记忆等功能。 认知计算是一种类脑计算模式,源自模…

我的创作纪念日——redis的历史纪录

机缘 最开始只想存留点Redis的操作信息,后来写着写着也就写多了,虽然后面很长时间由于忙就没继续写,但是还是偶尔登录看一下,有好几篇文章的浏览量还是很多的呢。 收获 收获不多,粉丝也才三十多个,浏览量感…

html 原生网页使用ElementPlus 日期控件el-date-picker换成中文

项目: 原生的html,加jQuery使用不习惯,新html页面导入vue3,element plus做界面,现在需要把日历上英文切成中文。 最终效果: 导入能让element plus日历变成中文脚本: elementplus, vue3对应的js都可以通过创建一个vu…

修改 docker /dev/shm 的大小

修改 docker /dev/shm 的大小 1,获取完整id: docker inspect 245| grep Id rootlynxi:~# docker inspect 245| grep Id"Id": "245ab167ed9a79873b31b3a38df2053870fe72f267c3c1a660df25c63e37e88b",2,修改 ShmSize&…

vueRouter 配合 keep-alive 不生效的问题

文章目录 问题说明案例复现demo 结构问题复现和解决 其实这个不生效的问题根本也不算一个问题,犯的错和写错单词差不多,但是也是一时上头没发现,所以记录一下,如果遇到同样的问题,也希望可以帮助你早点看到这个哭笑不得…

网络技术基础入门全套实验-厦门微思网络CCNA实验手册

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! 微思简介(https://www.xmws.cn) 微思成立于2002年,是一个诚信敬业、积极向上、充满活力、专注技术服务的企业。 微思获得了八…

【SpringBoot+dubbo+zk】实现服务之间rpc通信

0)前置准备&#xff0c;我们使用zk作为注册中心&#xff0c;先启动zk&#xff0c;也就是2181端口。 1)父工程pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http…

[SpringBoot]自定义注解@AutoFill,实现公共字段自动填充(避免重复对时间属性初始化

对于时间属性&#xff0c;如createTime、updateTime在进行插入、修改操作时都要一个个初始化处理&#xff0c;过于麻烦。 可以自定义注解AutoFill作用于INSERT&#xff0c;UPDATE操作方法上&#xff0c;再自定义切面类&#xff0c;统一拦截加入了AutoFill注解的方法&#xff0c…

PAT 乙级 1076 Wifi密码

解题思路&#xff1a;首先这题看着复杂实际很简单&#xff0c;每题就一个正确的我们把他找出来就可以&#xff0c;之后利用和’A’ 相减加一 求出数值&#xff0c;输出即可。python代码更容易 c语言: #include<stdio.h> int main() {int n,i,j,count0;scanf("%d&q…

[ffmpeg系列 03] 文件、流地址(视频)解码为YUV

一 代码 ffmpeg版本5.1.2&#xff0c;dll是&#xff1a;ffmpeg-5.1.2-full_build-shared。x64的。 文件、流地址对使用者来说是一样。 流地址(RTMP、HTTP-FLV、RTSP等)&#xff1a;信令完成后&#xff0c;才进行音视频传输。信令包括音视频格式、参数等协商。 接流的在实际…

【Spring实战】25 Spring Boot Admin 应用

文章目录 1. 查看健康信息2. 使用 Micrometer 和 "/metrics"3. 管理包和类的日志级别4. 其他功能总结 Spring Boot Admin 是一个功能强大的工具&#xff0c;用于监控和管理多个 Spring Boot 应用程序。通过上一篇文章 【Spring实战】24 使用 Spring Boot Admin 管理…

vue-springboot 音乐推荐系统 带歌词的音乐播放器系统设计与实现 7902c

少数民族音乐网站在流畅性&#xff0c;续航能力&#xff0c;等方方面面都有着很大的优势。这就意味着少数民族音乐网站的设计可以比其他系统更为出色的能力&#xff0c;可以更高效的完成最新的音乐信息、音乐资讯、在线交流等功能。 此系统设计主要采用的是JAVA语言来进行开发&…

240107-RHEL8+RHEL9配置安装:NVIDIA驱动(15步)+CUDA(4步)+CUDNN(5步)+GPU压力测试

Section 0: 基础知识 CUDA、cuDNN 和 PyTorch 版本的选择与搭配指南 安装优先级: 显卡驱动 → CUDA → CUDA Toolkit → cuDNN → Pytorch 即显卡驱动决定了CUDA版本&#xff0c;CUDA版本决定了CUDA Toolkit、cuDNN、Pytorch各自的版本提前下载 &#xff5c; CUDA提前下载 &am…

分布式系统架构设计之分布式消息队列基础知识

随着微服务、大数据和云计算的普及&#xff0c;分布式系统已经成为现代软件架构的核心。在分布式系统中&#xff0c;各个组件间的通信和数据交换尤其重要&#xff0c;而消息队列正是实现这一目标的关键技术之一。 在分布式架构设计过程中&#xff0c;架构师们需要对消息队列有…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于两阶段随机优化的电能量与深度调峰融合市场出清模型及定价方法》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主的专栏栏目《论文与完整程序》 这个标题涉及到一个电力市场的建模和定价方法&#xff0c;采用了两阶段随机优化的策略&#xff0c;目标是实现电能量与深度调峰的融合。下面是对标题中各个…

逆向一个Go程序

前奏 事先声明&#xff0c;自导自演&#xff0c;纯属为了演示基本的逆向思维 用Go写一段模拟登录的代码&#xff1a; package mainimport ("fmt" )func main() {pass : ""fmt.Print("input password:")fmt.Scan(&pass)if pass "hel…

DTD(文档类型定义)

一、简介 为什么使用DTD 通过 DTD&#xff0c;您的每一个 XML 文件均可携带一个有关其自身格式的描述。 通过 DTD&#xff0c;独立的团体可一致地使用某个标准的 DTD 来交换数据。 而您的应用程序也可使用某个标准的 DTD 来验证从外部接收到的数据。 您还可以使用 DTD 来验…

【架构专题】不会业务稳定性建设架构师直接开除!!!

为什么要做业务稳定性建设&#xff1f; 首先&#xff0c;什么是业务稳定性建设&#xff1f;顾名思义&#xff0c;就是保证系统的稳定运行&#xff0c;让用户不受任何影响地使用产品。对于一个企业来说&#xff0c;这非常重要&#xff0c;因为如果产品出现问题&#xff0c;那么…

Kafka(六)消费者

目录 Kafka消费者1 配置消费者bootstrap.serversgroup.idkey.deserializervalue.deserializergroup.instance.idfetch.min.bytes1fetch.max.wait.msfetch.max.bytes57671680 (55 mebibytes)max.poll.record500max.partition.fetch.bytessession.timeout.ms45000 (45 seconds)he…

C++实现单例模式

单例模式&#xff1a; 一种设计模式&#xff0c;它的目的是确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问这个实例。它适用于需要全局唯一的对象或资源的情况。 23种设计模式种最简单最常见的一种&#xff08;高频考点&#xff09; 要求&#xff1a;通过一个…