前言
一次偶然,从朋友那里得到一份“java高分面试指南”,里面涵盖了25个分类的面试题以及详细的解析:JavaOOP、Java集合/泛型、Java中的IO与NIO、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、Spring Boot、Spring Cloud、RabbitMQ、Dubbo 、MyBatis 、ZooKeeper 、数据结构、算法、Elasticsearch 、Kafka 、微服务、Linux。这不,马上就要到2021年3月份了,很多朋友又开始准备“金三银四”的春招啦,那我想这份“java高分面试指南”应该起到不小的作用,所以今天想给大家分享一下。
美团面试经历(还原最真实的4面)
美团一面:
1、自我介绍
2、聊项目相关
- 介绍项目
- 怎么保证redis与Mysql的数据一致性
- 见你写了个加随机数预防缓存雪崩,解释一下
- 未改进和改进后的Jmter测试性能对比
3、Redis
- 为什么选择Redis作为缓存?
- 为什么Redis的性能十分的高?
- 说一下单进程、单线程的Redis和你平时写的多线程程序的对比
- 如何保证Redis的高可用?(哨兵、持久化策略RDB、AOF)
- 解释一下哨兵、RDB、AOF
- 主从一致性
- Redis数据淘汰策略
- 能说一下分布式事务吗?
- setnx是事务吗?
4、Mysql
- 解释一下事务
- 讲一讲事务隔离级别
- 为什么使用B+树作为索引
- 聚簇索引和非聚簇索引的区别
5、Java
- Java是如何保证其安全性的
- 刚见你说了Java 内存泄漏问题,解释一下什么情况下会出现
- 说一下BIO、NIO、AIO
6、手撕算法
- 一个数组找出出现次数最多的一个数,如果多个数出现的次数相同则输出第一个
- 生产者消费者(一对一)
7、其它
- 平时怎么学习的
- 有什么需要问的吗?
美团二面:
1、手撕算法
- 10个多线程保证 i从0加到10 (差点翻车,主线程忙等另外10个线程完结)
- 反转链表
- 上台阶(n=80)
2、操作系统
- 常用的linux命令说一下
- 操作系统中的信号 和 信号量有什么关系
- epoll 和 Selector 有什么区别?
3、计算机网络
- 说一下拥塞控制
4、数据结构
- 说一下红黑树,你平时用的技术哪里用到了它?
- 哈希表怎么处理冲突?
5、项目相关
- 把项目放到服务器上运行的时候有没有遇到什么问题?查看项目运行的状态怎么做?
- spring 和 springboot的关系你是怎么理解的?
- Spring IOC和AOP说一下你的理解
- 为什么用消息队列?
- 对于消息的重复消费你有什么设计方案吗?
美团三面:
- 你怎么学的Java啊?
- 设计模式了解吗?单例讲一下,懒汉饿汉double-check,怎么实现。策略模式,外观模式,适配器模式,装饰器模式,分别讲一下
- 联合索引什么时候不会触发索引?
- AOP了解么,有什么好处,如何使用,怎么实现的?
- 支付宝到银行的转账业务怎么实现?
- redis实现分布式锁
- 三台机器集群,按不同权重访问,怎么做?
美团四面(hr):
- 先介绍一下你自己吧
- 说一下四种IO模型
- 平时怎么去学习的?
- 为什么你说学习了要去实践?
- 说一下的最大的优点和缺点
- 举一下你缺点的例子
- 想象一下你几十年后是怎样的生活?
- 你觉得最痛苦的一段时间
- 对你影响最大的一件事情
- 在安排活动的过程中有没有发生什么冲突?
- 你有什么崇拜的人吗?
- 你有什么想问的?
总结
就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!
金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录