2021年底面试记录
共 3791字,需浏览 8分钟
·
2022-01-13 19:30
目录:
前言
腾讯QQ音乐(三面挂)
一面
二面
三面
字节飞书(二面挂)
一面
二面
深信服
一面
二面
商汤(二面挂)
一面
二面
虾皮
一面
二面
顺丰数科(一面挂)
字节国际化电商
一面:
二面:
三面:
总结
前言
今天这篇用来记录一下这两三个月的面试历程,包括普通八股文、算法
有些是面试完几天后才记录的,只想起了个大概,详细的记不太清楚了
只是题目,答案的话直接网上搜索就行了
腾讯QQ音乐(三面挂)
一面
一面是算法面,主要有三道算法题,基本都是简单题型
(1)字符串查找
给定一个abdcdd字符串和一个abd字符串,在abdcdd字符串中找出abd字符串出现的第一个位置(从0开始),如果不存在,则返回-1.
例如:
输入:abdcdd="hello",abd="ll"
输出:2
(2)atoi函数
实现atoi函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。
例如:
输入:+3838
输出:3838
输入:-99kdj98
输出:-99
输入:dkdkdkdk
输出:0
leetcode地址:https://leetcode-cn.com/problems/string-to-integer-atoi/
(3)判断字符串是否有效
给定一个只包括的'(',')','{','}','[',']'字符串,判断字符里是否有效。
例如:
输入:"()"
输出:true
输入:"(){}[]"
输出:true
输入:"(]"
输出:false
二面
1、介绍下java gc
2、介绍下JUC,线程安全方面的
3、mysql事务相关、锁、索引、事务如何实现
4、redis集群模式、数据结构
5、kafka副本是怎么样的、kafka为什么快?
5、select、poll、epoll是怎么样的
6、TCP三次握手、四次挥手、为什么需要三次握手,四次挥手、滑动窗口
7、粘包是什么情况,如何解决?
8、介绍下项目:项目架构、多少人维护、做了多久、用户量、我在其中担任什么角色,做了什么功能
三面
三面有两道算法题和八股文
算法题:
(1)去除字符串中的空格
(2)获取字符串的所有子序列
leetcode类似题型:https://leetcode-cn.com/problems/subsets/
这道题在面试中没做出来哈哈哈
八股文:
1、说一下用到的存储系统
2、说一下redis的key是怎么进行hash的?一致性hash算法?Hash的负载因子是多少
3、TCP三次握手中的backlog是怎么样的
4、kafka的源码有没有看过、redis源码有没看过(问到这里的时候基本已经可以肯定挂掉了)
5、linux如何查看磁盘读写性能等
字节飞书(二面挂)
一面
算法题:
(1)单链表部分反转
(2)旋转数组中查找元素
八股文:
1、JVM内存结构,垃圾收集器,GC等
2、多路复用,redis使用了Reactor模式,它为什么快?
3、spring的依赖注入解决了什么问题?
4、说一下java锁机制?对象锁?公平锁?非公平锁?可重入锁?不可重入锁?自旋锁?
二面
算法题:
(1)二叉树的最长路径
八股文:
1、kafka partition底层存储是怎么样的
2、kafka如何确保消息一次消费且只被消费一次
3、kafka如何确保生产者消息发送成功
4、kafka 的消费者在消费成功、失败该怎么处理
5、mysql的innodb底层存储是怎么样的
6、mysql跟hbase的存储结构有什么不一样
7、内存池如何设计
8、进程间通信,最快的方式是什么,内存在内核还是用户态操作
9、TCP/IP如何解决粘包问题
深信服
记录的是大概,详细的题目忘了
一面
1、JVM
2、Kafka
(1)kafka如何确保消息的exactly onece semantic–EOS,从生产者、队列、消费者端分别回答
(2)副本之间如何同步
(3)kafka为什么这么快
(4)一台服务器上有太多partition会出现什么问题
3、spring cloud
4、mysql
编程题:多个线程打印一个列表
二面
(1)项目
(2)spring cloud之间如何互相调用
(3)mysql
(4)遇到的难题(这种题最难答了)
编程题:删除相邻重复字符,例如 abccdee --> abcde
商汤(二面挂)
一面
1、创建线程方式
2、线程池参数
3、线程池任务怎么执行
4、怎么停止线程池的某个任务
5、泛型是怎么样的
6、泛型有哪几种,运行期能获取泛型参数类型吗,?号怎么用
7、什么时候进行full gc
8、频繁full gc如何排查
9、内存溢出怎么排查
10、mysql的隔离级别、以及会导致什么问题
11、幻读如何解决
12、mysql中要手动加锁还是自动加锁,一条sql是怎么加锁的
13、怎么优化慢查询
14、mvcc是什么
15、mysql索引类型
16、mysql存储引擎以及区别
17、spring ioc、aop等信息,aop底层实现有什么
18、spring cloud全家桶
19、有没看过spring 全家桶源代码
20、spring eureka的流程
21、linux一堆命令,比如查看某个进程pid、只查看PID用什么、查看磁盘使用量、查看线程所用cpu:top -H
22、restful是什么
23、如何设计一个接口:图片和其它信息一起上传?然后扯一堆问题
24、短信接口如何实现,需要考虑什么问题
25、如何方式恶意刷接口行为?人机校验接口如何实现?
二面
1、项目
2、springcloud
3、netty粘包拆包怎么解决,netty中channel有几种
虾皮
一面
详细的没记录,大概就是这几个
1、JVM
2、mysql
3、kafka
4、redis
5、spring cloud
6、算法题:合并两个有序链表
二面
1、讨论项目
2、遇到的难点,是怎么解决的
顺丰数科(一面挂)
1、tcp粘包是如何导致的?tcp是长连接吗?tcp和http的keepalive有什么区别
2、udp会有粘包吗
3、netty的粘包如何处理
4、io多路复用是怎么样的
5、select、poll、epoll是怎么样的
6、mysql索引是如何加快搜索的
7、慢sql如何进行优化
8、limit分页如何进行优化
9、spring transaction会失效吗?
10、数据库和缓存不一致如何处理?
11、性能优化操作时如何利用arthas进行操作的?
12、spring cloud有哪些组件
13、为什么会有Feign组件,跟Ribbon需要自构建http请求如何区分
14、微服务之间怎么进行调用,pod之间如何在网络层相互调用
15、spring循环依赖如何处理?构造注入的循环依赖处理?
16、spring 拦截器、过滤器
17、如何在生产中查看日志,除了elk或其它日志平台,大文本日志如何查看相应时间段的日志?
18、ES如何进行文档搜索、底层搜索流程是怎么样的
字节国际化电商
一面:
1、讨论项目
2、缓存系统该如何设计
3、kafka的副本之间是如何同步的
4、mysql的索引是怎么样的,为什么可以加快搜索
5、mysql底层存储是怎么样的,如何加载数据
6、数据库事务是如何是实现的
7、算法题:删除单链表倒数第n个节点
二面:
1、linux进程、线程是什么样的,协程是怎么样的
2、进程线程模型,1:n和1:1有什么区别
2、tcp如何确保消息顺序、消息不丢失
3、TCP发送端没接收到接收端返回的ack应该怎么处理
4、传输协议有了解过吗?像protobuf等,该怎么去设计消息体结构,要是文本类消息该如何设计消息体结构
3、https如何进行单方面认证,比如客户端认证服务端
4、线程之间如何进行通信
5、mysql的原子性时怎么样的,如何保证原子性
6、脏读是怎么造成的
7、编程题:余额表添加扣减操作,同时添加流水表,如何敲代码,代码演示
如何在代码层面不加锁的情况下进行操作?只能利用mysql自带的锁
8、算法题:奇偶链表排序
给定一个单链表,链表中所有奇数位置的结点值是单调递减的,所有偶数位置的结点值是单调递增的。请就地(也就是说空间复杂度要求为O(1))将此链表改为顺序排序。比如单链表:9->4->6->7->5->8->3,奇数位置结点值依次为 9、6、5、3逆序排列,偶数位置 4、7、8为顺序排列。
三面:
1、讨论项目
2、系统高可用如何保障?服务降级、限流有没有了解过
3、怎么从长链接生成短链接
4、算法题:从字符串中找出最长不重复子字符串长度
比如 abcdabcddd,那么最长不重复子串就是 abcd,也就是4
总结
面试靠知识储备的同时,运气也很重要。
运气体现在面试官方面和算法题方面。
算法题方面看运气能不能遇到的就是曾经刷过的题
八股文方面主要是在记住的同时要理解,很多面试官会抓住一个点深入往下问的。
面试腾讯QQ音乐的时候,面试官给了我一个建议,我个人觉得很实用,算是一个面试加分点吧
就是回答问题的时候不要自顾自的说一大段,很多面试官可能没时间或者没耐心听,最好是先回答个大概,然后跟面试官交流,问下是否需要详细展开。
最后,祝想跳槽的同学都能去想去的厂做CRUD boy。