前言:
之前发表了一篇实习复习的内容:
史上最全!20/21届春招/秋招 实习/校招 JAVA面试全攻略!复习回顾这一篇就够了!
在这篇文章详细说了该如何去复习,也答应各位把面经整理一下,但是因为入职的事情耽搁了,现在整理出来回馈给大家!
PS:楼主只收到网易、快手、华为三家offer,也不是所谓的offer收割机。只是提供一些个人经验,这个平台帮了我很多,前人栽树后人乘凉,共勉!
美团
一面
0.自我介绍
1.问项目(项目详细介绍、用到什么技术、有什么优化)
2.线程池?创建线程池需要哪些参数?是否会存储内存溢出?
3.常用的数据结构?
4.栈跟队列的区别?
5.编程题:使用两个栈实现队列的功能
6.mysql的b树和b+树?
7.聚簇索引和非聚簇索引?
8.索引的优化,索引的失效?为什么不是索引建的越多越好?
9.线程安全的问题?(这个问题我并没有听懂)
10.创建线程需要创建哪些资源?线程有哪些状态?
11.线程的start方法和run方法?
12.线程之间通信有哪些方法?进程之间通信有哪些方法?
13.线程和进程之间的区别?
14.tcp和udp的之间的区别?
15.drop、truncate、delete之间的区别?
16.javaGC有哪些算法?常见的垃圾回收器?
17.java内存区域?
18.什么时候会进行young GC?什么时候会进行full GC?
19.反问环节
PS:第一次面试,有点紧张,知识差不多都会,但是答的思路并不通畅。但是一个月之后收到感谢信。。。
快手(已offer)
一面
0.自我介绍
1.ApplicationContext这个接口?有什么用?继承自什么接口?
2.springboot的启动流程?
3.三道代码题:
- 单例模式,要求线程安全、懒加载(我写的DLC的模式,基于这个又问了一下volatile和synchronized的原理和为什么在这里用)
- 把一个长度为 n 的数组分成 k 段,让每段和的最大值最小。(这道题思路跑偏了,面试官说复杂度太高)
- 每间隔m个元素反转一次链表(1-2-3-4-5-6,间隔2的反转:2-1-4-3-6-5)
PS:一面就三道编程题把我弄得有点蒙,面试小哥说时间不够了,我给你安排二面吧…
二面
0.自我介绍
1.做项目遇到的问题?
2.单线程改为多线程会产生什么问题?(因为我项目中使用了多线程优化和线程池)
3.线程池的参数?
4.线程池的内存溢出是什么情况?
5.阻塞队列介绍一下?加锁的情况?
6.写过关于信号量的东西吗?(面试官对我把阻塞队列中底层源码lock.newCondition作为锁表示怀疑,所以问出来了这个问题)
7.线程池的启动流程?
8.线程池的过期时间这个参数,指的是什么&#