java大厂面经-阿里腾讯、网易美团、京东、华为、快手、字节全在这里了

前言

在这篇文章详细说了该如何去复习,以前也答应各位把面经整理一下,可是由于入职的事情耽搁了,如今整理出来回馈给你们!java

美团

一面

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.反问环节python

快手

一面

0.自我介绍
1.ApplicationContext这个接口?有什么用?继承自什么接口?
2.springboot的启动流程?
3.三道代码题:mysql

  • 单例模式,要求线程安全、懒加载(我写的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.线程池的过时时间这个参数,指的是什么?线程池的过时时间到了以后,线程是如何被操做的?
9.OSI七层模型?
10.TCP和UDP的区别?
11.三次握手协议?
12.hashmap的原理?hashcode和equals的关系?hashcode相等,equals是否相等?
13.hashmap为何是线程不安全的?
14.hashmap的尾部遍历?(没答上来)
15.数据库的优化过程?
16.explain的查看哪些字段?(答的不完整)
17.数据库为何使用B+树而不是使用B树?
18.索引存储的位置?磁盘仍是什么?
19.B+树的叶子有什么特色?为何B+树适合范围查询?
20.什么是回表操做?如何避免索引的回表?
21.什么状况的会用到锁?介绍一下java中的锁?
22.synchronized的锁的底层实现?
23.锁升级理论?何时会转化为重量级锁?
24.算法题:给定数组,一个给定值,寻找数组中两个数字之和为指定值。(使用了暴力解法,面试问了一下优化方式,没答上了)
25.反问环节算法

PS:这个面试明显比上一个气场要强,问的问题比上一个面试官深,虽然基本上都答上了,可是面试官会对一些平时不太注意的细节加以询问。总体的流程比较严肃。spring

HR面

正在腾讯的笔试,打来了电话,说询问一下状况。。。sql

1.实习经历
2.实习项目
3.项目的解决思路
4.在实习公司如何学习
5.对应聘部门的了解
6.反问数据库


阿里

一面

1.自我介绍
2.在学校的GPA,在学校有没有参加ACM和数学建模
3.你我的的博客地址(我写了本身常常写博客)
4.阅读过的技术书籍,遇到问题怎么去查找
5.hashmap的基本原理
6.处理hash冲突的方式
7.jdk1.8使用treemap来处理哈希冲突,你是怎么理解的?
8.arraylist和linkedlist的区别
9.增长删除线性表的第一个元素,使用哪一种数据结构
10.JVM的内存结构
11.新生代和老年代的GC算法
12.内存泄露是什么?什么状况出现?
13.HTTP常见状态码
14.HTTP和HTTPS的区别
15.mysql提供哪几种索引
16.单库数据库知足不了性能,如何处理
17.分库分表的水平和垂直切分
18.Redis的分布式锁
19.什么是公平锁?什么是非公平锁?
20.常见的设计模式?
21.工厂模式使用场景
22.Linux命令:awk命名(分割符),查找指定列;pdm集群找出文件
23.线程池的实现思路
24.反问:部门的主要内容、HC多很少、本身的不足编程

总结:基本上都答出来,Linux命令两个都不知道,没有考察编程,由于面试官说我笔试不是很好,因此没考察,后面的会重点考察。设计模式

PS:而后就没而后,今年阿里疯狂刷KPI,我投的属于比较晚的,截止到4.30号,仍是没有消息,找内推人获得的回复是,面试官比较忙,而后我就主动结束了内推流程了。。。


腾讯

一面

1.怼项目
2.疯狂怼项目
3.归并排序
4.TCP为何须要三次握手而不是二次握手
5.反问:部门是什么,二面何时,部门的业务和语言
PS:这是PCG部门,部门的语言是go、python、java,我猜想这个面试官的主要方向不是java,没有问我java方面的,问了30分钟的项目,最后的结论是:项目太少、语言掌握太少。

一段时间以后就收到感谢信了(估计是语言不符)


网易(已offer)

一面

0.自我介绍
1.线程和进程的区别?
2.进程何时会从用户态进入内核态?为何须要引入用户态和内核态?
3.什么是守护进程
4.什么是孤儿进程?什么是僵尸进程?
5.进程的通讯方式?本机进程与进程使用socket的场景?
6.TCP和UDP的区别?
7.OSI七层协议?五层协议?
8.路由器和交换机分别位于哪层协议?
9.TCP保证可靠的机制?
10.TCP如何确认每次数据的正确性?
11.三次握手和四次回收?
12.TCP创建链接和断开链接的状态(time_wait和close_wait)
13.time_wait和close_wait大量存在的缘由和处理办法
14.time_wait 的存在时间为2msl,为何?
15.数据库索引?
16.数据库索引优缺点?索引回表(结合着一个场景题)
17.何时数据库索引失效?
18.队列和栈的区别?平衡二叉树?
19.AVL树、B树、红黑树的区别?
20.java面向对象特性?继承、封装、多态?
21.什么是反射?使用场景?
22.jvm的内存区间分布?堆和栈分别存储的内容?
23.对象的方法参数存储的位置?
24.gc回收、分代垃圾回收算法、年老代和年轻代回收?
25.hashmap在jdk1.8的变化?
26.项目介绍
27.项目本身作的优化
28.一致性hash算法、负载均衡
29.反问:部门状况、语言、表现如何、多久能够接到通知

PS:网易的招聘流程给个人感受很不错,通知也很及时,问的也很基础,面试感受比较好。

二面

0.自我介绍
1.项目相关?邮件存储的方式(个人项目是邮件项目)
2.技术上的优化方案?
3.算法题:01二维数组,上下左右视为连续,求二维数组中连续的最大1的个数。
4.java中支持并发的容器
5.hashmap的底层实现?get的操做过程?
6.从网页上写下一个URL,都有什么过程?
7.https的非对称加密?加密过程?
8.反问环节

PS:面试小哥全称带笑,算法题也是引导着很快就作出来了。

HR面

0.自我介绍
1.学校担任过什么职位
2.对网易的见解
3.平时玩游戏吗?玩什么游戏?
4.平时如何学习的?经过什么方式去解决问题?
5.说一下你以为你处理的最好的事情?
6.反问

PS:网易这个hr给个人感受就比较亲切,开始的时候还自我介绍了一下,给我一种十分尊重的感受,而后交流的时候也十分轻松,就感受本身已通过了。。。


京东

一面

0.自我介绍
1.平时怎么学?看过什么书?
2.项目相关?几我的作的?如何配合工做?功能模块遇到的问题?如何优化?
3.实习时间?有什么感觉?
4.上一个实习加班吗?
5.hashmap如何遍历?
6.hashcode和equals方法区别和做用?
7.new一个对象,java中有什么操做?
8.类加载的过程?
9.泛型?泛型的两个关键字介绍一下?(extends、super)
10.Spring的AOP,底层的两种实现?(两种动态代理模式)
11.sql语句,班级表,查出重名的人?
12.sql语句优化(慢查询、explain)
13.网关接口,每一个接口被调用的次数(这个没答出来,说了一下幂等性的惟一id的那种模式,面试官反馈好像能够)
14.本身的平时爱好?
15.本身的缺点?
16.你有什么要问的吗?

总结:感受面试的比较仓促,而后就没有了,也没有感谢信。。。


华为(已offer)

一面

0.自我介绍
1.算法题:整数数组,打印一个和最大的连续子数组,和相同的状况下打印最长的状况。
2.常见排序方法?
3.快速排序和冒泡排序的区别?是否稳定、时空复杂度?
4.递归方法的优缺点?
5.研究生实习时长?
6.实习期间的主要收获是什么?
7.反问环节?

PS:一面比较简单。

二面

0.自我介绍
1.学校何时开学?
2.何时能来实习?
3.导师对实习的态度?
4.学校的位置?
5.对微服务架构的理解?
6.实习的目的?
7.会选择留在华为吗?
8.使用过什么数据库?
9.有女友吗?(emmmm)

PS:这个大佬是2004年硕士毕业进华为的(我也不知道为何二面会安排这种资历的面试我。。。),这个大佬刚进华为的时候被派到我学校附近工做,常常去我学校吃饭打篮球,就对我很亲切,全称聊的很开心,当天晚上就给offer了。


字节跳动

一面

0.自我介绍
1.抽象类和接口的区别?分别用于在什么场景?
2.String 、Stringbuffer、Stringbuilder
3.重载和重写的区别?
4.arraylist和linkedlist的区别?
5.为何hashmap不是线程安全的?
6.线程的状态?
7.wait和sleep的区别?
8.synchronized的类锁和对象锁?
9.线程池在CPU密集型和IO密集型?
10.youngGC和fullGC的触发条件?
11.young区分为哪些区,哪一个区满了会触发youngGC?
12.垃圾回收器?G1和CMS的了解?
13.java内存模型?
14.线程的同步和通讯?
15.volatile关键字?底层的机制?
16.float和double的浮点的精度运算?
17.数据库场景题:

  • 创建联合索引(a,b,c),而后在where条件是:a=xxx and b>xxx and c=xxx; 这个时候联合索引是否被用到,(索引会在>或者<中止。)
  • 索引不变,where条件是:c=xxx and b>xxx and a=xxx;索引是否被用到(这个where条件跟第一个是一致的,数据库会进行优化。)
  • 表并不存在索引,查询条件是where a=xxx order by b;这个时候应该如何创建索引?(创建一个ab的联合索引,会先过滤a索引,在排序b索引)

18.乐观锁和悲观锁?
19.spring的初始化的流程?
20.Redis的数据结构?
21.Redis的分布式锁?
22.Redis的哨兵机制?
23.消息中间件使用过吗?
24.编程题:两个单向链表进行加和,例如1->2->3->4,另外一个是3->4,返回一个链表1->2->6->8;不能够遍历转出数字直接加。。。

PS:在数据库场景题上答的很差,其余的差很少答上,最后由于部门名额没了,收到感谢信了

最后

对于大厂面试,我最后想要强调的一点就是心态真的很重要,是决定你在面试过程当中发挥的关键,若不能正常发挥,极可能就由于一个小失误与offer失之交臂,因此必定要重视起来。另外提醒一点,充分复习,是消除你紧张的心理状态的关键,但你复习充分了,天然面试过程当中就要有底气得多。上面的面试题以及答案我都整理成了一份文档,能够关注个人公众号:前程有光免费获取!你们看完有什么不懂的也欢迎私信问我!

相关文章
相关标签/搜索