前言

在这篇文章详细说了该如何去复习,之前也答应各位把面经整理一下,但是因为入职的事情耽搁了,现在整理出来回馈给大家!

美团

一面

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

快手

一面

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.线程池的过期时间这个参数,指的是什么?线程池的过期时间到了之后,线程是如何被操作的?
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:这个面试明显比上一个气场要强,问的问题比上一个面试官深,虽然基本上都答上了,但是面试官会对一些平时不太注意的细节加以询问。整体的流程比较严肃。

HR面

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

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失之交臂,所以一定要重视起来。另外提醒一点,充分复习,是消除你紧张的心理状态的关键,但你复习充分了,自然面试过程中就要有底气得多。上面的面试题以及答案我都整理成了一份文档,可以关注我的公众号:前程有光免费获取!大家看完有什么不懂的也欢迎私信问我!

java大厂面经-阿里腾讯、网易美团、京东、华为、快手、字节全在这里了的更多相关文章

  1. 多次面试被拒,‘宅家苦修’30天,终获美团offer(含字节跳动/阿里/腾讯等大厂面试题整理)

    背景:双非渣本. 今年由于疫情,上半年一直在家里.2月份本来无忧无虑,呆在家里不给国家添乱的时候,发现身边的同学找到了大厂的offer.心里开始有点慌张.本来想在3月份如果能回到学校,就开始考研之路, ...

  2. 春招后端阿里腾讯字节美团Offer拿来吧你,面试经验分享

    近期很多童鞋在准备校招了,找了蚂蚁的一位童鞋,给大家分享一波面试经验,以及面试心得,希望能帮大家在秋招拿到一个好结果 我自己的22届春招实习算是告一段落,给自己做个总结,也给大家分享一下面试的一些心得 ...

  3. 支付宝开通海外退税 阿里腾讯暗战跨境O2O_21世纪网

    支付宝开通海外退税 阿里腾讯暗战跨境O2O_21世纪网 支付宝开通海外退税 阿里腾讯暗战跨境O2O

  4. Java内存回收 - 落日之心的日志 - 网易博客

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  5. Linux(CentOS6.5)修改默认yum源为国内的阿里云、网易yum源

    官方的yum源在国内访问效果不佳. 需要改为国内比较好的阿里云或者网易的yum源 修改方式: echo 备份当前的yum源 mv /etc/yum.repos.d /etc/yum.repos.d.b ...

  6. Java开发不懂Docker,学尽Java也枉然,阿里P8架构师手把手带你玩转Docker实战

    转: Java开发不懂Docker,学尽Java也枉然,阿里P8架构师手把手带你玩转Docker实战 Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一 ...

  7. Java finally语句到底是在return之前还是之后执行(JVM字节码分析及内部体系结构)?

    之前看了一篇关于"Java finally语句到底是在return之前还是之后执行?"这样的博客,看到兴致处,突然博客里的一个测试用例让我产生了疑惑. 测试用例如下: public ...

  8. 双非本科拿到阿里腾讯字节,分享Java后端路线

    前言 最近有很多小师妹来问我. 师妹:师兄~看了你之前的从腾讯到阿里,最后选择字节,觉得你特别厉害,请问你是怎么进BAT的呀,能不能告诉我你的学习路线呀~ 既然小师妹都这么问了,那我在这篇就如实回答她 ...

  9. 阿里腾讯校招Java面试题总结及答案

    阿里校招java面试题汇总 1.HashMap和HashTable的区别,及其实现原理. Hashtable继承自Dictionary类,而HashMap是Java1.2引进的,继承自Abstract ...

随机推荐

  1. git学习(三) git的分支操作

    git的分支操作 软件项目中启动一套单独的开发线的方法,可以很好的避免版本兼容开发的问题,避免不同版本之间的相互影响,封装一个开发阶段,解决bug的时候新建分支,用于对该bug的研究: git中跟分支 ...

  2. 使用BeetleX.Tracks对APM关系链埋点

    在现今微服务流行的年代相信一定有了解APM,对于APM核心来说是数据来源,一般各自的APM都有对应的组件帮助完成这些工作.如果需要制作自己的APM系统 ,那需要考虑服务程序调用埋点问题:在这里介绍使用 ...

  3. mysql 改变表结构 alter

    总结:alter添加栏位时,只需记住添加新栏位为第一列,用first;添加其他用,after 前一个栏位字段,如下例 1.需求:将新的栏位添加为第二列 添加前: 添加后: 参考:http://www. ...

  4. 线程池ScheduledThreadPool

    定时线程池 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle ...

  5. vue 用别名取代路径引用

    在项目开发过程中有可能很多包是没有放在npm上的,许多包需要下载到本地引用,这样一来我们只能通过require的方式来引用文件,但是路径的名字就会很长 例如 import Select from '. ...

  6. 简简单单入个Redis的门

    Redis介绍 Redis是一种key-value的存储系统,它是一种nosql(Not Only [SQL])非关系型的数据库,它支持string(字符串).list(链表).set(集合).has ...

  7. Java反射:new一个宝可梦吧

    最近写Spring Boot的测试用例会发现经常会有用到@RunWith(SpringRunner.class)的设置注解,关于SpringRunner.class的理解也有点似是而非.其实这种写法是 ...

  8. MarkDown及Typora文本编辑器

    文章介绍主要介绍MarkDown语法和与之能够配套使用的文本编辑器Typora的下载使用 1. MarkDown简介 MarkDown是一种纯文本标记语言,其书写与txt.word文档类似: 所有网站 ...

  9. docker容器与宿主机的数据交互

    在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 方式一.Docker cp命令 docker cp :用于容器与主机之间 ...

  10. 14、Cookie和Session组件

    cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...