乐趣区

关于java:4面腾讯字节最终斩获两个月薪25K的offer谈谈我的大厂面经

今日分享开始啦,请大家多多指教~

这是之前看到的听残缺的面试教训,明天给大家分享一下,互相学习,让大家能找一份梦寐以求的工作,实现本人的幻想。

面试流程

第一天:第一面 + 第二面

等了两天:第三面 + 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 做的少,面试两行泪。。

依据面试状况能够看到面试官会问到的一些重点问题,针对这些问题看看本人是否有本人的答复。基础知识还是十分有必要的,这是迈向胜利的必经之路。

今日份分享已完结,请大家多多包涵和指导!

退出移动版