在互联网做了几年之后,去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好,更重要的是,它是对你专业能力的背书,大厂工作背景多少会给你的简历增加几分竞争力。
但说实话,想进大厂还真没那么容易。我的一个朋友在入职腾讯之前,大大小小的面试经历了十几次,最后终于在 4 轮技术面+1 轮 HR 面之后成功接到 Offer,40k*16 薪!
第一轮主要考察 Java 基础,比如:
hashmap的实现
Java中的垃圾回收
除了代码之外你还学习了什么技术,框架
死锁是怎么产生的
线程和进程的区别
二、三轮注重对应技术的掌握:
MySQL的索引,B+树性质
Redis的持久化方式
TCP四次挥手讲一下过程,最后一次ack如果客户端没收到怎么办
对于socket编程,accept方法是干什么的,在三次握手中属于第几次
四面则是关于参与过的项目和对业务的理解。
如果这些问题你回答不出来,那么我建议你刷一遍大厂的面试真题。我这里有一份滴滴、快手等大厂面试的必考点、高频点、加薪点,以及最新整理出来的 Java 学习路线图,想要的同学文末免费获取
(Java面试真题资料包)
(Java学习路线,由于原图太大,想要的同学可以见文末获取方式)
每轮面试大概一个小时左右,面试官从技术和项目两个角度考察得非常详细。后来 HR 反馈给他的信息是:技术扎实,参与过热门项目,与岗位要求匹配度较高。
朋友的例子表明:技术能力+项目经验是大厂面试的重点,只要这两点过关,面试正常发挥,拿到梦寐以求的 Offer 并不难!
其实在面试腾讯 Offer 之前,他碰了不少钉子,因为没有大型项目经验,学历和工作背景也不够好,简历投出去之后经常是“已读不回”。
为了弥补自己这两个方面的短板,他历尽艰辛搞到了一份鹅厂的内部面试题,我研究了一下,发现从源码剖析、框架优化和定制、分布式架构设计、再到海量数据处理、高并发处理、最后到性能优化和调优。
Java相关
基础&进阶篇
字符串&集合面试题
…
Java并发编程
1.多线程有什么用?
2.多线程和单线程的区别和联系?
3.简述程、程序、进程的基本概念。以及他们之间关系是什么?
4.线程的创建方式
5.线程有哪些基本状态?
6. 如何停止一个正在运行的线程
7. start ()方法和run(方法的区别
8.为什么我们调用start (方法时会执行run (0方法,为什么我们不能直接调用run (方法?
9. Runnable接口和Callable接口的区别10.什么是线程安全?
11.线程的状态转换?
12.在多线程中,什么是上下文切换(cont ext-swit ching)?
13. Java中堆和栈有什么不同?14. 如何确保线程安全?
15.什么是静态条件?你怎样发现和解决竞争?16.用户线程和守护线程有什么区别?
17.如何创建守护线程?以及在什么场合来使用它?
18.线程安全的级别
19.你对线程优先级的理解是什么?
20.什么是线程调度器(Thread Schedul er)和时间分片(Time slicing?
…
JVM面试题
1.什么是.Java虚拟机?为什么Java被称作是“平台无关的编程语首”?
2. Java内存结构?3. Java内存分配
4. Java堆的结构是什么样子的?什么是堆中的永久代(Ferm Gen space)?
5. Java中堆和栈有什么区别?
6.解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法
7. JVM内存分哪几个区,每个区的作用是什么?
8.怎么获取Java程序使用的内存?堆使用的百分比?9. JVM有哪些内存区域〔VM的内存布局是什么?)10.类加载器
11. JVM加载class文件的原理机制?12. Javra类加载过程
13. JVM中对象的创建过程14. Java对象结构
15.类的生命周期
16.如何判断对象可以被回收?
17..如果对象的引用位置为null,垃圾收集器是否会立即释放对象占用的内存?
18. Java的四种引用,强弱软虚19.什么情况下会发生栈溢出?
…
数据结构与算法
1.什么是数据结构?
2.为什么我们需要数据结构?3.常见的数据结构
4.冒泡排序
5.插入排序
6.选择排序
7.归并排序
8.快速排序
9.二分查找
10.二分查找II
11.除排序数组中的重复项
12.删除排序数组中的重复项II
13.移除元素
14.移动零
15.数组中重复的数字
16.旋转数组
17.螺旋矩阵
18.两数之和
19.三数之和
20.四教之和
21.较小的三数之和
22.最接近的三数之和
23.合并两个有序数组
24.寻找旋转排序数组中的最小值
…
网络协议面试题
1.什么是网络编程
2.网络编程中两个主要的问题
3.网络协议是什么
4.为什么要对网络协议分层
5.计算机网络体系结构
6.什么是TCF{IF和UDP
7. TCP与UDP区别:
8. TCF和UDP的应用场景:
9.形容一下TCF和UDP
10.运行在TCP或Ur的应用层协议分析。
11.什么是Http协议?
12. Http和Https的区别?
13.什么是http的请求体?
14. HTTP的响应报文有哪些?
15. HTTPS工作原理
16.三次握手与四次挥手
17.为什么TCF连接需要三次握手,两次不可以么?
18.用现实理解三次握手的具体细节
19.建立连接可以两次握手吗?为什么?
20.为什么要四次挥手?
21. TCP协议如何来保证传输的可靠性
…
数据库
MySQL面试题
52条SQL性能优化策略一千行sQL命令
Redis面试题
MongoDB面试题
框架相关面试题
Spring面试题
MyBatis面试题
SpringBoot面试题
Spring & SpringBoot常用注解
微服务
1.什么是微服务?
2.什么是微服务架构?
3.微服务的优缺点是什么?说下你在项目中碰到的坑。
4.你所知道微服务的技术栈有哪些?列举一二。
5.微服务之间如何独立通讯的?
6. Spring Clou的版本关系
7. Spring cloud的子项目〈主要项目〉
8. spring cloud的核心组件有哪些?
9. springcloud如何实现服务的注册?
10.什么是Eureka
11. Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?
12.你所知道的微服务技术栈?
13.使用Spring Cloud有什么优势?
14. SpringBoot和SpringCloud之间关系?
15. SpringCloud 和 Dubbo有哪些区别?
16.什么是Spring Cloud Confi g?
17.什么是Ribbon?
18. 什么是feigin?它的优点是什么?
19. Ribbon和Fei gn的区别?
20.什么是Spring Cloud Gatewayf?
21.什么是Hystrix?它如何实现容错?
22.什么是Hystrix断路器?我们需要它吗?
23.什么是Netflix Feign?它的优点是什么?
…
中间件相关
Dubbo面试题
Nginx面试题
Zookeeper面试题
MQ面试题
KafKa面试题
Elasticsearch面试题
Linux
Linux常用命令