闭关苦修8个月,最终靠着这2000道Java面试题,我成功拿到了阿里P7的offer

前言

我大概我是从去年12月份开始看书学习,到今年的6月份,一直学到看大家的面经基本上百分之90以上都会,我就在5月份开始投简历,边面试边补充基础知识等。也是有些辛苦。终于是在前不久拿到了阿里的offer,定级P7。

我现在也来写面经,把我还能记住的,写下来,反馈给大家:

一面 :

  1. mysql知道哪些存储引擎,它们的区别
  2. mysql索引在什么情况下会失效
  3. mysql在项目中的优化场景,慢查询解决等
  4. mysql有什么索引,索引模型是什么
  5. B-树与B+树的区别?为什么不用红黑树
  6. mysql主从同步怎么做
  7. 乐观锁与悲观锁的区别?
  8. binlog日志
  9. redis 持久化有哪几种方式,怎么选?
  10. redis 主从同步是怎样的过程?
  11. redis 的 zset 怎么实现的?
  12. redis key 的过期策略
  13. hashmap 是怎样实现的?为什么要用红黑树,而不用平衡二叉树?为什么在1.8中链表大于8时会转红黑树?HashMap为什么线程不安全的?
  14. 如何实现线程安全的hashmap?
  15. select 和 epoll的区别
  16. http与https的区别,加密怎么加的?
  17. raft算法详细讲解
  18. Kafka 选主怎么做的?
  19. kafka如何保证生产与消费都是同步的?
  20. kafka 怎么保证不丢消息的
  21. redis如何保证高可用
  22. 算法:剪绳子(贪心或递归解决)
  23. 算法:给前序和中序遍历,重建二叉树

二面:

  1. 自我介绍
  2. 讲讲项目(项目没啥亮点,直接问基础)
  3. volatile作用?底层实现?禁止重排序的场景?单例模式中volatile的作用?
  4. 如何构造线程池,它的参数,饱和策略?
  5. 公平锁和非公平锁区别?为什么公平锁效率低?
  6. 线程都有哪些状态?
  7. 线程、进程、协程的区别?
  8. 同步队列器AQS思想,以及基于AQS实现的lock,。
  9. 并发工具类CountDownLatch、CyclicBarrier、Semaphore介绍
  10. Execuors类实现的几种线程池类型,最后如何返回?
  11. 手写单例模式
  12. 手写消费者生产者模式
  13. 算法:反转单链表
  14. 算法:给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。

三面:

  • 这一面,没问啥东西,主要聊人生,和未来3年的规划。

下面为大家附上我在朋友那要到的字节跳动以及京东的面试题

一面:

  1. 自我介绍
  2. 项目介绍(没亮点,还是问基础)
  3. 堆排序的原理及时间复杂度,是否稳定,最坏及最坏场景。
  4. Object类都有哪些方法?
  5. DNS解析的过程/浏览器输入一个url,敲下回车后网络的全过程
  6. HTTP和HTTPS的区别
  7. UDP怎么实现可靠传输
  8. 介绍下https,是如何加密的,加密算法
  9. 数据库索引的优缺点,以及什么时候数据库索引失效
  10. 事物的隔离级别?
  11. 数据库的脏读,不可重复读,幻读
  12. 算法:接雨水:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
  13. 算法:N皇后

二面:

扫描二维码关注公众号,回复: 11586734 查看本文章

1. Kafka的特性?

2. Kafka中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序是什么?

3. 消费者重平衡(高可用性、伸缩性)

4. 哪些情景下会造成消息漏消费?

5. 如何保证消息不被重复消费(幂等性)

6. KafkaConsumer是非线程安全的,那么怎么样实现多线程消费?

7. Kafka生产者客户端中使用了几个线程来处理?分别是什么?

8. 消费者与生产者的工作流程:

9. topic的分区数可不可以增加?

10. 算法:二叉树中的最大路径和

11. 算法:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。

三面:

  1. redis的Zset怎么实现的?
  2. sentinel和cluster区别和各自适用场景
  3. redis cluster集群同步过程
  4. redis单线程为什么快?
  5. mybatis一级缓存和二级缓存
  6. spring如何解决循环依赖?
  7. spring AOP的原理。
  8. spring的生命周期。
  9. Dubbo服务暴露和引用过程,负载均衡策略,容错机制在哪里实现的源码
  10. 项目中遇到了哪些问题。(抱歉,我的工作就是增删改查,没接触过相关问题)
  11. 算法:二叉树的镜像
  12. 算法:从上到下打印二叉树

一面:

  1. 如何设计一个秒杀系统?
  2. 一天爬一千万条文章,怎么做设计?怎么并行协调?100 台服务器怎么尽可能负载均衡?
  3. 有用过短域名服务吗,能说一下吗?
  4. 微服务的特点,如何实现服务发现和负载均衡
  5. 如何排查线上问题?(背过,没排过)
  6. 贝叶斯的概率学原理
  7. 负载均衡的加权轮询算法怎么实现
  8. 如果用户量大幅度上涨,如何优化?
  9. paxos算法(这个算法太难,学的时候就没太理解)
  10. 平时都看什么博客,最近看什么书了。

二面:

  1. 自我介绍
  2. 项目介绍(面试官:你说你经验不足,那咱们从基础来问)
  3. redis的5种类型,及其实现原理(redis设计与实现这本书我倒背如流,面试官夸我很不错)
  4. 如何使用redis的Zset实现延时队列?
  5. redis如何实现高可用?
  6. redis缓存穿透、缓存击穿、缓存雪崩。
  7. 布隆过滤器的实现。
  8. 如何保证mysql与redis的双写一致性。
  9. 负载均衡算法有哪些?
  10. 服务发现是怎么实现的?
  11. 熔断是怎么实现的?
  12. 算法:连续子数组的最大和
  13. 讲讲分布式CAP和BASE?
  14. 什么是强一致性
  15. 分布式事务的解决方案?
  16. TCC(两阶段型、补偿型)
  17. id生成器如何实现?
  18. 如何判断一个图是否有环?
  19. 一致性Hash算法,及其应用。
  20. 背包问题

三面:

  1. 自我介绍
  2. 项目介绍
  3. redis的zSet如何实现?
  4. redis持久化机制。
  5. redis的Hash类型讲解,渐进式rehash。
  6. HashMap原理,一个put操作,都有什么流程?
  7. nginx有自己配置过吗(这个是我唯一手动操作过的,这个不是背的)
  8. nginx的使用场景。
  9. 什么是分布式,什么是集群,区别是什么?
  10. 在基于dubbo的分布式环境中,一般将超时timeout设置在provider还是consumer?
  11. dubbo中负载均衡的策略有哪些?
  12. 接口的异步调用?如何设置?运行效果?
  13. 谈谈基于dubbo的系统中consumer集群的解决方案?
  14. mysql是集群还是单节点?最大连接数,最大的表中数据量大约是多少?
  15. mysql主从复制主要有哪几种模式?
  16. mysql索引,B+树,为什么不用红黑树?
  17. 数据库垂直与水平拆分怎么做。
  18. 分布式session设置
  19. IO、BIO、NIO,阻塞与非阻塞的区别?
  20. 分布式接口的幂等性设计(不能重复扣付款)
  21. 算法:二叉搜索数与双向链表(这个懵了)
  22. 算法:最长不含重复字符的子字符串
  23. 算法:手写快速排序、插入排序、冒泡排序,并分析时间复杂度和空间复杂度,它们的稳定性。

总结

多看多记,多做题多看书,希望大家可以找到自己喜欢的工作,一切顺利。

上面的这些面试题都整理成了PDF文档,希望能帮助到你面试前的复习且找到一个好的工作,也节省你在网上搜索资料的时间来学习!大家可以转发+收藏后私信“面试” ,领取这份整理好的Java面试题资料!

猜你喜欢

转载自blog.csdn.net/python8989/article/details/107499461