今日分享开始啦,请大家多多指教~
这是之前看到的听残缺的面试教训,明天给大家分享一下,互相学习,让大家能找一份梦寐以求的工作,实现本人的幻想。
面试流程
第一天:第一面 + 第二面
等了两天:第三面 + HR面
过了一周后:等到意向书
第一面
第一面大概率是根底面,重点考查的是本人技术的广度和一些技术的掌握情况,一面也不会深究于某个特定的点,面试工夫大概1个小时。
自我介绍
- 有理解过OAuth2.0么,说说你对OAuth2.0的了解
- 开发过程中,有理解或学习其它的开源框架么
- 用到了RabbitMQ,那谈谈为什么引入RabbitMQ?
- 你还晓得其它的一些Linux命令么?
- cat、tail、vi、vim命令的区别,别离说一说?
- 如果Linux下须要关上或者查看大文件,你会怎么做?
- 上面聊聊Http Code,你晓得 3XX 状态码 对应的是什么?
- 再谈谈你晓得的其它一些状态码,4XX 和 5XX?
- 上面咱们来做个题目吧?语言任意,抉择喜爱的。
给定一个数组,例如 [1,1,2,2,2,3,3,3,3]这样的,外面的数组不肯定间断并且有序,假如我输出 2,这个2示意呈现次数最高的两个。
那么你须要给我返回 2,3。
换个题目吧,看看上面这个题目,找数组呈现次数最多的TOP N。
给定一个数组,例如 [1,1,2,2,2,3,3,3,3]这样的,外面的数组不肯定间断并且有序,假如我输出 2,这个2示意呈现次数最高的两个。
那么你须要给我返回 2,3。
最开始的思路就是,通过hash存储呈现的次数,而后key就是数组中呈现的值。最初再对hash中的次数进行排序,最初失去top N,因为工夫复杂度是O(N^2),问有没有优化思路,是否优化到O(N),想了半天没有想进去,没有充分运用以及构建好的hash表。
前面面试官给讲了一下思路。从数组长度向下遍历进行查找。
反诘环节,问了问面试的体现,被告知算法能力比拟单薄,然而说这边能够让进入下一环节,大略须要等5到10分钟左右。
第二面
二面考查的是技术深度面试,面试工夫大概50分钟左右
自我介绍
- 对于Solr或者ES外面用到的一些中文分词器有理解过么?
- 谈谈那些技术栈,你比拟相熟的是哪些,mysql 和redis?
- 聊聊MySQL的底层索引构造,InnoDB外面的B+Tree?
- B Tree 和 B+ Tree的区别
- 聊聊MySQL索引的倒退过程?是一来就是B+Tree的么?从 没有索引、hash、二叉排序树、AVL树、B树、B+树 聊。
- 谈谈MySQL外面的事务,说说什么是事务?
- MySQL外面有哪些事务级别,并且不同的事务级别会呈现什么问题?
- 谈谈可反复读和幻读的区别?
- MySQL中如果应用like进行含糊匹配的时候,是否会应用索引?肯定不会用么?(索引这块理解得太少了,二面完结后,回去恶补了一下)
- 谈谈Redis吧,在你我的项目中的具体应用?
- 如果我须要查看端口号或者过程号,你会应用什么命令?
- 来吧,写个题目试试
链表的两两翻转 # 给定链表: 1->2->3->4->5->6->7 # 返回后果: 2->1->4->3->6->5->7
反诘环节:诘问面试体现?告知 Redis这块把握得还能够,然而MySQL这块显得有余。问后续的安顿。
第三面
应该是Leader面,面试工夫大略50分钟
自我介绍
- 好奇一下,为什么没有用Github?
- 英文程度怎么样?
- 咱们找些点来聊聊吧?先从ES和Solr开始,你们这两个都有在用么?
- SQL的形式实现搜寻,你是怎么做的呢?
- 应用like匹配的时候,会不会查问十分慢呢?
- 用链表的形式实现,工夫复杂度是O(N),有没有什么形式可能让它是O(1)的工夫复杂度呢?
OK,思路还能够,那手写一个LRU算法吧?(双向链表 + Hash?)
反诘环节:问了下组织架构,以及python和go在我的项目中的应用。而后问了下面试的体现,答:代码写得不算好吧,LRU写成这样我感觉是不太适合的。(心碎的声音,感觉到凉凉的气味…),完结后认为面试曾经完结,前面在筹备关页面的时候,面试官说等一下。
HR面
花10来分钟做个简略的沟通
自我介绍
- 为什么抉择的是这个学校呢?
- 回顾一下,上大学到当初这段时间内,让本人最有挫败感的事件是什么呢?
- 有哪些方面须要在改良的么?
- 对于当前加入的工作,你次要会看重哪些方面呢?
- 同学这块,大家都有在投递字节这边的岗位么?
反诘环节:对于面试后果,告知当初只是做简略的理解,面试后果大概会在一周左右进去,到时候会有邮件或者电话告诉。对于面试的后果,须要综合后面的几个面试官进行综合评测,能力决定是否录取。
给大家个倡议,面试官如果违心和你聊组里业务,肯定要把握机会好好聊,最好能提出让面试官眼前一亮的问题,直指业务外围。代码谁都会写,基础知识网上都能查到,然而对产品的了解和新的想法不是谁都有的
(1)第一步,面试前整顿一个残缺常识架构纲要
我将架构体系分为五大模块:并发编程、JVM性能调优、Spring开源框架源码解读、缓存数据库、分布式架构,微服务架构
(2)第二步,通过纲要对面试中的高频技术一一攻克
1,并发编程(手写笔记:并发编程+并发编程_原理+并发编程_利用+并发编程_模式)
- 并发编程共享模型篇
- 并发编程_模式篇
- 并发编程_利用篇
- 并发编程_原理篇
并发编程共享模型篇
并发编程_模式篇
并发编程_利用篇
并发编程_原理篇
2,性能调优(Java性能调优实战:Java编程性能调优+JVM性能优化+Mysql调优笔记)
- JVM性能优化
- JVM性能监测及调优
- Mysql调优笔记
3,Spring开源框架源码解读
4,缓存数据库
- Redis外围笔记
- MongoDB集群和平安
5,分布式架构
Kafka源码解析与实战
6,微服务架构
Spring Cloud Alibaba技术栈全解
Spring Cloud微服务笔记
k8s+Jenkins笔记
(3)第三步,刷面试题,面试字节跳动算法是必问的
算法刷题小册
25大Java面试专题
腾讯总体来说,面试体验还很不错的,尤其是在手撕代码题的时候,面试官会先叫你提供思路,如果你说的思路有问题的话,会帮你拨正,而后在进入coding阶段,然而怎奈何平时没怎么练习算法,leetcode做的少,面试两行泪。。
依据面试状况能够看到面试官会问到的一些重点问题,针对这些问题看看本人是否有本人的答复。基础知识还是十分有必要的,这是迈向胜利的必经之路。
今日份分享已完结,请大家多多包涵和指导!