个人觉得腾讯面试基础考核较多,特别是数据库,因为自己较少用数据库只对一些基本操作有了解所以在回答数据库的问题的时候答得较浅,算法题目基本也只考察排序算法,只有二面的时候问了一道动态规划的题。可能因为项目里只写了区块链的项目,所以面试官也没有考察各种中间件的掌握情况。
腾讯初试一面
- 数据库发生死锁的原因,如何解决?
- 多线程同步机制除了用锁还有其他方式没?
- 数据库的索引,联合索弓|如何实现?
- 排序算法,时间复杂度,稳定性,手撕代码
- 重载重写虚函数
- 多线程出现问题如何定位?
- Java内存模型以及内存结构
- HTTP协议以及版本
- 网络字节序与主机字节序
- 三次握手以及四次挥手
- 动态规划
- HashMap , ArrayList等Java集合
- 数据库的各种锁
- 数据库最左前缀
腾讯二面
- 多线程之间如何通信?
- 数据库事务如何实现?
- 进程与线程的区别,切换的过程?
- AOP IOC的实现方式
- Java的四种线程池以及阻塞队列
- 垃圾回收算法
- TCP的计时器
- 实现LRU
- jdk动态代理cglib代理
- RMI了解吗?
腾讯复试三面(总监面)
- 面向对象与面向编程的区别以及特点
- 数据库索引的实现方式,为什么索引1能加快查询效率?
- .数据库查询慢如何优化?
- MySQL的存储引擎以及区别
- 堆栈的区别
- 排序算法
- 线程的状态sleep wait的区别等
- HTTP code状态码了解多少?
还有很多题目不记得啦
腾讯面试总结方面
- 精通Web后台开发语言至少一种(PHP、Java、.Net、C++),有一定的架构能力和良好代码规范
- 熟悉linux/unix系统与开发环境
- 熟悉TCP/IP协议,socket编程
- 熟悉mysql以及SQL语言
- 有高性能大容量服务系统设计开发经验
- 精通面向对象设计,精通J2EE开发,java web开发
- 全面并且扎实的软件知识结构(操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全);
- 具备良好的分析解决问题能力,能独立承担任务和有系统进度把控能力
- 精通MySQL或Mongo DB,熟悉缓存技术memcached、redis
- 有大型分布式、高并发、高负载、高可用系统设计、开发和调优经验
- B/S结构系统分析及设计经验,有构建可伸缩、可扩展、高可用系统经验
- 有良好的开发习惯,熟悉Maven, Jenkins, JUnit等工具
- 精通MVC/REST架构、模板引擎、中间件的原理与应用
- 熟悉MySQL数据库,了解MySQL索引优化、查询优化和存储优化
作为互联网行业的三大巨头之一,腾讯对于互联网人才有很大的吸引力,他们的员工也是众多互联网同行觊觎的资深工程师、管理者人选。
面试答案分享:
以下该面试题的部分参考答案。
金三银四跳槽季,小弟为各位大哥准备了几份面试宝典:
- 一份是技术干货《Java核心知识点整理》
- 一份是面试真题《1000道互联网Java工程师面试题》
- 面试宝典《互联网Java工程师面试题大全》
Java核心知识点整理
1000道互联网Java工程师面试题
互联网大厂面试宝典