今日分享开始啦,请大家多多指教~
这是之前看到的听残缺的面试教训,明天给大家分享一下,互相学习,让大家能找一份梦寐以求的工作,实现本人的幻想。
面试流程
第一天:第一面 + 第二面
等了两天:第三面 + 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 做的少,面试两行泪。。
依据面试状况能够看到面试官会问到的一些重点问题,针对这些问题看看本人是否有本人的答复。基础知识还是十分有必要的,这是迈向胜利的必经之路。
今日份分享已完结,请大家多多包涵和指导!