前言

先介绍一下本人背景:双非末流一本,大三,CS专业,有百度实习经历,本次主要给大家分享一下我面试腾讯的面经,已拿offer。最后也分享了我复习的流程,希望能够帮助到正在准备面试的你!

一面(支付)

1.jqc的介绍
2.如何确保多台机器不会重复消费
3.如何确保消费了反馈失效问题(用事务管理,先储存再消费,失败就回滚)
4.如何防止数据库单点问题
8.paxos算法
9.raft算法
10.spring的aop实现
11.三种操作,a:++,b:--,c:/2(只能偶数),求i变1的最少次数
12.人才培养(轮流尝试,提出任务,鼓励实现)
13.没有深度的广度没有意义,由广变宅,由浅入深
14.设计时需要经验但堤防经验主义
15.百度技术氛围比腾讯好

二面

1.手写多线程买票代码
2.手写ServerSocket使用代码
3.java有多少种线程池,固定线程池是怎样的
4.Collection的子接口
5.Map的接口,HashMap应用场景
6.Queue的父接口,使用场景
7.数据库主从复制配置
8.Spring的IOC优点,解决了什么问题(解耦)
9.Bean的生命周期
10.Bean的范围,gobal session的作用
11.手写SpringMVC流程
12.如何平衡生活和工作
13.职业发展规划
14.为何不考研
15.redirect和forward区别
16.大学中最大的挑战
17.加密算法

HR面

1.喜欢做什么
2.喜欢看什么电影,带着什么心态去看
3.会再回百度吗
4.还有什么面试
5.腾讯阿里选什么,为什么选腾讯
6.是否独生
7.家里人希望做什么

复习过程

找工作非常累,我想这是每个经历过春招秋招人都有的体会,无论是基础的学习,复习,笔试,面试或者是等offer。

楼主网易三道笔试题一道没A,第一次面阿里没准备好直接一面被挂,心态确实很崩溃,但楼主还是相信金子总会发光的,互联网这个行业提供了很好的机会,学历的要求相对其他行业低了很多,只要愿意下功夫,一定会有所回报的。

算法准备

刷算法前,数据结构必须很熟悉,老生常谈了不多说了。算法其实没什么好说的,都是硬刷刷出来的,剑指offer,leetcode,还有往年真题,楼主刷的不多,加起来不到300道。

个人刷题顺序是先剑指offer刷了一遍,leetcode挑自己不会的对应的tag刷(比如树,DP,回溯),觉得刷的差不多了再去刷往年的真题。左神的算法课强力推荐,这里强烈推荐一下

一般三道编程题做得出一道半就能有面试机会,左神说笔过的企业要有一半收到面试邀请才算及格。。

基础准备

楼主是打算以后做Java后台开发的,所以对于Java相关的东西必须得熟悉,语法,并发,集合类,JVM等等。JVM推荐《深入理解Java虚拟机》,并发推荐《Java并发编程的艺术》。

从0开始啃书会比较的慢,楼主差不多第一次看一个月才可以看完一本,囫囵吞枣的看,暂时不理解的就先死记下来。看完第一遍结合面经看,遇到不会的就翻书搜资料看博客,会有很多新的收获,看的面经多了就慢慢的对于基础理解的就更多了。

另外个人感觉不是很推荐直接看源码,直接读源码非常麻烦,层层封装下来很容易看不懂被绕晕,多看看别人写的解析再看看源码比较好。

数据库的内容,写SQL语句推荐直接牛客或者leetcode上练习,一般面试过程中不会出现太难的写SQL语句。其他部分,楼主路子比较野,除了上课学过一本《数据库系统概念》,没看什么书,基本上都是看着面经复习的,看到不会的就去搜一下相关内容。。

计算机网络部分,推荐教材《计算机网络:自顶向下的方法》,做后台开发对于TCP/UDP,Http协议要很熟悉,网络层个人感觉不会问的很细(当然也要看),链路层和物理层了解即可。

编译原理,这个面试被问到到是命不好,楼主根本没准备过这部分的,虽然之前手撸过一个很小的编译器,但是都忘了,面试也基本不问。
(然而腾讯二面还是被问到了一下,不会,敲里马)

操作系统,楼主上课的课本是《现代操作系统》,感觉面试问的比较多的是进程,内存管理,死锁。

另外推荐一本《深入理解计算机系统》,对于理解计算机底层很有帮助(虽然这本书现在被我用来垫笔记本了)

不是很推荐这些书直接从头到尾的读,很花时间,时间多可以这么做,很考验人的耐心,比较推荐的是粗略了解一下内容,看面经,看到不会的去翻书和查资料加深理解。

复习资料

作为阅读福利,我把我的资料都整理了一下,现在免费分享给阅读到本篇文章的Java程序员朋友们,需要的可戳此处获取,下面为部分资料展示

Java面试题
Java面试题
大厂面试真题
大厂面试真题
书籍资料
书籍资料
Java核心知识点
在这里插入图片描述
1000道+Java工程师必看面试真题
在这里插入图片描述
需更多Java学习资料+面试真题,可戳此处获取