前言
首先来个自我介绍吧,我是一个拥有大厂梦的程序猿,在传统的外包公司干了几年,实在是干不下去了,然后本来就一直想去大厂,趁着辞职,想去大厂闯一下,于是我花了整整3个月的的时间整理出了大厂的面试题,结果皇天不负苦心人,靠着这些面试题,终于拿到了腾讯的offer,成功入职腾讯,然后就来写一篇文章,和大家分享一下我的面试经历,和我整理的大厂的面试题,希望大家都能圆了去大厂的梦!加油,奥利给!
腾讯一面:
1.自我介绍
2.擅长哪方面的技术?
3. Java有哪些锁种类? (乐观锁&悲观锁、可重入锁&Synchronize等)
4.比较重要的数据结构,如链表,队列,栈的基本理解及大致实现
5. J.U.C下的常见类的使用。ThreadPool的深入考察; BlockingQueue的使用
6. Java内存分代模型,GC算法, JVM常见的启动参数; CMS算法的过程。
7. volatile关键字有什么用(包括底层原理)
8.线程池的调优策略
9. spring cloud的服务注册与发现是怎么设计的?
10.分布式系统的全局id如何实现
11.分布式锁的方案,redis和zookeeper哪个个好,如果是集群部署,高并发情况下哪个性能更好。
腾讯二面
1.擅长的项目 详细解释了项目的几个模块 项目里遇到的一些问题
2.问了Redis在项目中的使用
3.为什么用rabbitMQ
4.问了spring
5.讲一下java的线程(我还顺便讲了线程池,当时没反应过来,应该往锁那里引的)
5.arraylist和linklist的区别
6.UDP和TCP的区别
7.HTTP的请求方法的几种类型,GET和POST的区别,首部字段key-value都知道哪些
8.问了一些shell命令
9.测试的一些东西(红白黑盒)
10.百度框怎么测试
11.一道意外简单的算法题==(两个栈实现队列)
腾讯三面
1、十亿个数的集合和10w个数的集合,如何求它们的交集。
2、十亿和数找到前100个最大的,堆排序,怎么实现,怎么调整。
3、TCP和UDP的区别,具体使用场景呢。
4、TCP四次挥手讲一下过程,最后一次ack如果客户端没收到怎么办。
5、对于socket编程,accept方法是干什么的,在三次握手中属于第几次?
6、Linux操作系统了解么,了解一点点,就没问了。
7、对于单例模式,有什么使用场景了,讲了全局id生成器,他问我分布式id生成器怎么实现,说了zk,问我zk了解原理不,讲了zab。
8、除了单例模式,知道适配器模式怎么实现么,有什么用
9、回到网络,刚才你说到直播场景,知道直播的架构怎么设计么,要点是什么?
10、Redis和MySQL有什么区别,用于什么场景。
总结
现在想想还是有点小激动的,本来抱着试一试的心态,结果真的能去腾讯了,我觉得吧其实大厂面试主要就是围绕着:多线程、spring、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 这些,最后是我花了整整3个月整理出的大厂的面试题跟大家分享一下,
最后希望大家都能去到大厂,写文章不易,希望大家能够多多支持我,给我点个赞评论一下!