最新Java面经大汇总(阿里、美团、字节等面经)

最新Java面经大汇总(阿里、美团、字节等面经)-mikechen

阿里内推

一面(电话)

  1. 听说你有博客,博客里大概有什么内容?
  2. 项目介绍,最复杂的表
  3. Hashmap的原理
  4. Hashmap为什么大小是2的幂次
  5. 介绍一下红黑树
  6. Arraylist的原理
  7. 场景题:设计判断论文抄袭的系统
  8. 堆排序的原理
  9. 抽象工厂和工厂方法模式的区别
  10. 工厂模式的思想
  11. object类你知道的方法
  12. 哪里用到了工厂模式
  13. Forward和redirect的区别

二面(视频)

1, 自我介绍

2, 项目介绍

3, 项目架构

4, 项目难点

5, Synchronize关键字为什么jdk1.5后效率提高了

6, 线程池的使用时的注意事项

7, Spring中autowire和resourse关键字的区别

8, Hashmap的原理

9, Hashmap的大小为什么指定为2的幂次

10, 讲一下线程状态转移图

11, 消息队列了解么

12, 分布式了解么

 

字节跳动

字节一面部分考题:

  1. 进程和线程,区别,哪个效率高,为什么
  2. 死锁的条件,如何解决
  3. java的基本数据类型和字节数
  4. mysqI索引结构,特点,为什么使用这个
  5. 聚集索引和非聚集索引
  6. HashMap,为什么使用红黑树
  7. 垃圾回收机制GC, cms, G1,垃圾回收的算法

字节二面部分考题:

  1. 谈谈项目?
  2. 子类和父类的实例变量和方法有什么区别
  3. 重载和覆盖区别,返回值类型不同,可以重载吗,为什么
  4. java泛型
  5. 悲观锁和乐观锁
  6. mysql底层原理,为什么效率高,主键能不能太大,为什么
  7. linux查询tcp连接处理CLOSE_ WAIT的状态的数目
  8. RabbitMQ, kafka, RocketMQ, ActiveMQ, 以及其他消息中间件
  9. redis为什么效率高,线程,数据结构,网络模型,aio, nio, bio, 为什么这么设计?如何处理高并发。

 

美团内推

一面(电话)

  1. 自我介绍
  2. 项目介绍
  3. Redis介绍
  4. 了解redis源码么
  5. 了解redis集群么
  6. Hashmap的原理
  7. hashmap容量为什么是2的幂次
  8. hashset的源码
  9. object类你知道的方法
  10. hashcode和equals
  11. 你重写过hashcode和equals么,要注意什么
  12. 假设现在一个学生类,有学号和姓名,我现在hashcode方法重写的时候,只将学号参与计算,会出现什么情况?
  13. 往set里面put一个学生对象,然后将这个学生对象的学号改了,再put进去,可以放进set么?并讲出为什么
  14. Redis的持久化?有哪些方式,原理是什么?
  15. 讲一下稳定的排序算法和不稳定的排序算法
  16. 讲一下快速排序的思想

二面(现场)

  1. 自我介绍
  2. 讲一下数据的acid
  3. 什么是一致性
  4. 什么是隔离性
  5. Mysql的隔离级别
  6. 每个隔离级别是如何解决
  7. Mysql要加上nextkey锁,语句该怎么写
  8. Java的内存模型,垃圾回收
  9. 线程池的参数
  10. 每个参数解释一遍
  11. 然后面试官设置了每个参数,给了是个线程,让描述出完整的线程池执行的流程
  12. Nio和IO有什么区别
  13. Nio和aio的区别
  14. Spring的aop怎么实现
  15. Spring的aop有哪些实现方式
  16. 动态代理的实现方式和区别
  17. Linux了解么
  18. 怎么查看系统负载
  19. Cpu load的参数如果为4,描述一下现在系统处于什么情况
  20. Linux,查找磁盘上最大的文件的命令
  21. Linux,如何查看系统日志文件
  22. 手撕算法:leeetcode原题 22,Generate Parentheses,给定 n 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。

三面(现场)

三面没怎么问技术,问了很多技术管理方面的问题

  1. 自我介绍
  2. 项目介绍
  3. 怎么管理项目成员
  4. 当意见不一致时,如何沟通并说服开发成员,并举个例子
  5. 怎么保证项目的进度
  6. 数据库的索引原理
  7. 非聚簇索引和聚簇索引
  8. 索引的使用注意事项
  9. 联合索引
  10. 从底层解释最左匹配原则
  11. Mysql对联合索引有优化么?会自动调整顺序么?哪个版本开始优化?
  12. Redis的应用
  13. Redis的持久化的方式和原理
  14. 技术选型,一个新技术和一个稳定的旧技术,你会怎么选择,选择的考虑有哪些
  15. 说你印象最深的美团点评技术团队的三篇博客
  16. 最近在学什么新技术
  17. 你是怎么去接触一门新技术的
  18. 会看哪些书
  19. 怎么选择要看的书

百度

一面(现场)

  1. 自我介绍
  2. Java中的多态
  3. Object类下的方法
  4. Finalize的作用和使用场景
  5. Hashcode和equals
  6. 为什么要同时重写hashcode和equals
  7. 不同时重写会出现哪些问题
  8. Hashmap的原理
  9. Hashmap如何变线程安全,每种方式的优缺点
  10. 垃圾回收机制
  11. Jvm的参数你知道的说一下
  12. 设计模式了解的说一下啊
  13. 手撕一个单例模式
  14. 快速排序的思想讲一下
  15. 给个数组,模拟快排的过程
  16. 手写快排
  17. 设计题,一个图书馆管理系统,数据库怎么设计,需求自己定

二面(现场)

  1. 自我介绍
  2. 项目介绍
  3. Redis的特点
  4. 分布式事务了解么
  5. 反爬虫的机制,有哪些方式
  6. 手撕算法:反转单链表
  7. 手撕算法:实现类似微博子结构的数据结构,输入一系列父子关系,输出一个类似微博评论的父子结构图
  8. 手写java多线程
  9. 手写java的soeket编程,服务端和客户端
  10. 进程间的通信方式
  11. 手撕算法: 爬楼梯,写出状态转移方程
  12. 智力题:时针分针什么时候重合

三面(现场)

由于三面面试官不懂java,我不熟c加加,所以全程尬聊

  1. 自我介绍
  2. 项目介绍
  3. 手撕算法:给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。
  4. 然后继续在这个问题上扩展
  5. 求出最短那条的路径
  6. 递归求出所有的路径
  7. 设计模式讲一下熟悉的
  8. 会不会滥用设计模式
  9. 多线程条件变量为什么要在while体里
  10. 你遇到什么挫折

腾讯

一面(现场)

  1. 自我介绍
  2. 项目介绍
  3. Hibernate的作用,你的理解
  4. 多线程的理解,如何保证线程安全
  5. mysql数据库的引擎和区别
  6. 场景题:千万用户抢购,如何处理高并发,并且有一个链接,指向前一天抢购成功的用户,如何设计这个系统和数据库
  7. 如果后台处理抢购请求的服务器,每次最多承受200的负载,系统该怎么设计
  8. 手撕算法:最小公倍数和最大公约数

二面

  1. 自我介绍
  2. 项目介绍
  3. 项目里一个完整请求的流程
  4. 项目的优化
  5. Hibernate和mybatis的区别
  6. 为什么用ssh框架
  7. Mysql的容灾备份
  8. Redis和memcache 的区别
  9. 为什么选择redis
  10. Java的full gc
  11. Full gc会导致什么问题

 

小米内推

一面(电话)

  1. 自我介绍
  2. 看你最近博客写的是redis,介绍redis和mysql的区别
  3. Redis的应用场景
  4. Hashmap的原理
  5. Hashmap中jdk1.8之后做了哪些优化
  6. 垃圾回收的过程
  7. Jvm的参数设置
  8. 项目中的优化

金山wps内推

一面(电话)

  1. 自我介绍
  2. 项目介绍
  3. 对Java的面向对象的理解
  4. 对java多线程的理解
  5. 数据库的索引
  6. 数据库的隔离级别
  7. 设计模式的理解
  8. 讲几个设计模式
  9. 对算法有什么了解?答主先回答了动态规划,解释了一下dp的思想
  10. 快排的思想讲一下

二面(电话)

  1. 自我介绍
  2. 项目介绍
  3. Tcp怎么保证可靠传输(中间穿插了好多小问题)
  4. Tcp的拥塞控制
  5. 让你设计一个即时聊天的系统
  6. 支付宝转账,是如何实现,几个小时通知转账成功的(面试官想让回答长连接,答主一直没get到点)
  7. 解释一下长连接

拼多多学霸批

一面(现场面)

  1. 自我介绍
  2. 项目介绍
  3. 手撕算法:一棵二叉排序树,给定一个数,找到与给定数差值最小的数
  4. 场景题:设计一个系统,解决抢购时所需要的大量的短链接的功能,如何保证高并发,如何设计短链接

二面(现场面)

  1. 代码量多少
  2. 给了一张纸,各种名词,会的写出来
  3. 然后给它解释那些会的
  4. 设计题:设计一个系统,记录qq用户前一天的登录状态,提供16g内存和2tb的硬盘,要做到查询指定qq号的前一天的登录状态,快速查询O(1)复杂度

搜狗校招

  1. 自我介绍
  2. 项目介绍
  3. 手撕算法:两个排序的数组A和B分别含有m和n个数,找到两个排序数组的中位数,答主用的二分,时间复杂度为O(log (m+n))。结果面试官不满意,让用归并的思想做,时间复杂度其实更高了
  4. 介绍网络编程

涂鸦移动

一面(现场)

  1. 自我介绍
  2. 项目介绍
  3. 数据库的索引原理
  4. 索引使用的注意事项
  5. 数据库的引擎
  6. Java垃圾回收机制
  7. Java的finalize,finally,final三个关键字的区别和应用场景
  8. String类可以被继承么
  9. 手撕算法:假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。
  10. 给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,你最多可以得到多少钱 在不触动报警装置的情况下。

二面(电话)

  1. 自我介绍
  2. 对游戏的了解
  3. 项目介绍
  4. 算法题:给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。
  5. 红黑树
  6. Redis的应用

中国电信it研发中心

一面(现场)

  1. 自我介绍
  2. 项目介绍
  3. 项目里用的什么服务器
  4. 自己写一个tomcat服务器,你会怎么写
  5. 分布式服务器会出现哪些问题
  6. 怎么解决session一致性缓存的问题
  7. Redis的优势和特点
  8. 一千万用户并发抢购,怎么设计
  9. 如果成功的用户有10万,redis存不下怎么处理
  10. 你项目中的难点

二面(现场)

  1. 自我介绍
  2. 项目介绍
  3. 介绍spring中的熟悉的注解
  4. 让你实现autowire注解的功能你会如何实现
  5. Redis和mysql的区别
  6. Redis的持久化有哪些方式,具体原理

中兴

专业面(现场)

  1. 自我介绍
  2. 项目介绍
  3. 你了解的设计模式,讲两个
  4. Java collection类,集合,讲两个你了解的,说实现原理
  5. Java线程池的作用
  6. 你觉得你在你实验室处于什么水平

综合面试(现场)

说好的综合面试纯聊天呢?

1. 自我介绍

2. 项目介绍

3. 说一下你知道的设计模式

4. 画一个策略模式的uml图

5. Java多线程的理解

6. 内存屏障是什么

7. 数据库索引

8. 项目中的优化

9. 然后开始聊人生

10. 你的缺点,你最不喜欢什么样的人,你的家庭等等

华为

一面(现场)

  1. 自我介绍
  2. 项目介绍
  3. 项目架构
  4. 项目一个完整的执行流程(由于我是搞java的,而面试官是搞c的,所以全程尬聊)
  5. 项目优化

二面(现场)

  1. 自我介绍
  2. 项目介绍
  3. 怎么管理项目进度
  4. 平常的爱好
  5. 感觉面试官也不是搞java的,所以又是一阵尬聊

苏宁内推

一面(现场)

  1. 自我介绍
  2. 项目介绍
  3. 面过哪些公司了
  4. 有哪些offer了
  5. 聊到多益,于是开始聊最近微博上很火的多益老板
  6. 得出结论,我和面试官都觉得多益老板三观有问题,但做游戏就是要偏执的人
  7. 你博客主要哪方面的
  8. 多线程并发包了解么
  9. 讲一下countDownLatch

苏宁聊了20分钟八卦就面完了,一轮技术面

 

招商银行信用卡

一面

  1. 自我介绍
  2. 分布式事务
  3. 设计模式
  4. 访问者模式
  5. 装饰者模式
  6. 有哪些offer
  7. 为什么还来我们这

网易

一面(现场)

  1. 自我介绍
  2. 项目介绍
  3. I++操作怎么保证线程安全
  4. 场景题:设计一个下单系统,下单成功后可以给用户发优惠券
  5. 接上面场景题:服务器挂了,优惠券还没发怎么办
  6. 数据库挂了怎么怎么办
  7. 怎么保证一致性
  8. 分布式事务知道么
  9. 介绍分布式事务
  10. 你的职业规划

二面

  1. 自我介绍
  2. 项目介绍
  3. Nio的原理
  4. Channel和buffer
  5. directBuffer和buffer的区别
  6. nio和aio的区别
  7. 锁的实现原理
  8. 怎么解决缓存和主存的一致性问题
  9. 缓存还没更新到主存,服务器挂了怎么办
  10. 数据库挂了怎么办

Vivo

  1. 自我介绍
  2. 项目介绍
  3. Hibernate的batch有数量限制么
  4. Jquery用过么
  5. Extjs的优缺点
  6. 有没有扩展过extjs
  7. 读写锁
  8. 什么时候用读锁
  9. 什么时候用写锁
  10. Cas的原理,使用场景
  11. 数据库的瓶颈

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法