前几天得知我的某个可爱的应届小学妹一次性拿下美团 Java 岗 4 面 offfer,导致我越发觉得自己真心有点菜鸡,我弱小的心灵受到了一万点暴击!
学妹自述:
美团,是在 boss 上投的简历,之前也投过一次,简历都没通过删选,后来让同学帮忙改了一下简历,重新投另一个部门,获得了面试机会。
8月 23日,中午 HR 打电话过来预约了下午 4 点半面试,说会在线写代码,让我准备好网络环境。结果 5 点半还没打电话过来,被放鸽子。与 hr 重新沟通过后,确定周下一下午再面,可是跟 hr 沟通预约这一套貌似在美团并没有什么用。
羡慕归羡慕,不过这又为我码字提供了素材(哈哈哈),咱今天就大致分享一下学妹的这美团 Java4 面面经,看看人家面试都问了些啥(并在文末附带 Java 面试+学习资源,可免费分享)。
学妹自述:晚 7 点,因为想到下周一才面试,我刚准备出去打个羽毛球,北京的电话就来了。面试官各种抱歉,说开会拖延了。。
算法题:给一个数字串,要求划分为有效的 ip 地址,求出所有的结果
输入:s = "25525511135"
输出:["255.255.11.135","255.255.111.35"]
输入:s = "0000"
输出:["0.0.0.0"]
输入:s = "101023"
输出:["1.0.10.23","1.0.102.3","10.1.0.23","10.10.2.3","101.0.2.3"]
学妹自述:一面挺匆忙的,我估计面试官刚开完会还没吃饭呢。他说让我等,可能再找一个同事面我,可能就直接告诉我结果了。从一面面试官的声音和口吻,我判断他一定是个部门老大,问的设计偏多,后面 hr 告诉我他就是我要去的部门的老大。。哈哈。。
Part 01 技术问题
Java 如何使用 jdbc 连接数据库?
如何实现线程安全? 如何创建线程?如何创建线程池? 说说都有哪些锁? 了解 spring boot 吗 redis 特点 redis 都有哪些数据结构? 用到了 redis 哪些命令? redis 的应用? 为什么 redis 是单线程? redis 的复制与集群? redis 的持久化? rdb 的两种策略? rdb 和 aof 各有什么优缺点?
Part 02 项目
介绍一下项目
说说秒杀的流程
如何解决超卖的?
为什么要用 redis?
库存没卖完怎么办?
jmeter 压测如何?
消息队列的作用?
如何减库存的?
秒杀时突然想增加库存怎么办?
Part 03 算法题
给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。
自我介绍
聊项目
讲讲 ThreadPoolExecutor 的七个参数?怎么配置?能说一下核心线程数、最大线程数、工作队列之间的数量关系吗?
ThreadPoolExecutor 中提交任务后的执行步骤?
如果我需要任务有返回结果的话你需要传入什么类型的任务?
还用过别的设计模式来解决类似的问题吗?(项目中的问题,扯动态代理,又问了两种动态代理实现的区别,Spring AOP 用的是哪种)
Spring AOP 有出现过代理失效的情况吗?你在哪里用到过 AOP ?
讲讲 Spring 的事务管理吗?
(中间穿插一道算法题、SQL 题)
你在开发过程中都遇到过哪些异常?你是怎么处理的?(空指针、SQL 异常、类型转换异常)
各种空指针异常判断题
算法题:有一个正整数 n(n < 100),期望找出一个最小的 n 的倍数 m(m < 2^64 - 1)且 m 只由 1、0 组成,例如:输入 n = 2 输出 m = 10,输入 n = 3 输出 m = 111
哪里人?能接受异地工作吗?
平时学习怎么样?有参加竞赛或获得奖学金吗?
介绍一下项目经历,你在这里面扮演什么角色?
高考多少分之类的问题
谈到怎么准备 Java 面试,我想说,若你还同无头苍蝇一般不知如何下手,那么第一件事你要做的就是梳理自身的知识脉络。毕竟,想要进大厂,就需要具备更多的知识树,需要掌握更全面的知识体系,所以就需要对知识进行一个系统的梳理了。
如果觉得自己手绘 Java 知识脉络图比较麻烦,可以借鉴参考下方我之前大致手绘一份知识网图(Java 知识体系庞大,我是用的 xmind 绘制的脉络图,文中无法直接上传原件,截图如下,内容过多以至于图片不够清晰,但可提供分享原件。)
此外,关于面试刷题,个人觉得这份 “Java 高分面试指南”很不错,包含 25 个专题内容,整个 1000+题 50w+字解析,够你刷到秃顶:
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 最新整理的“Java 中高级核心知识点解析”,查漏补缺知识点刷它最合适不过,包含整个 30 类知识点的集合:
JVM
JAVA 集合
JAVA 多线程并发
JAVA 基础
Spring 原理
微服务
Netty 与 RPC
网络
日志
Zookeeper
Kafka
RabbitMQ
Hbase
MongoDB
Cassandra
设计模式
负载均衡
数据库
一致性哈希
JAVA 算法
数据结构
加密算法
分布式缓存
Hadoop
Spark
Storm
YARN
机器学习
云计算
从学习路线→☛面试刷题→☛核心知识补漏,以上全套的 Java 学习资源皆可免费共享给有需求的你,还请仔细关注一下免费下载原件的方式:
1:转发此文(码字不易,转发是对此文的一个认可,也可让更多朋友阅读到)
最后
为大家整理了 Java 核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯等面试题+Spring 源码合集+Java 架构实战电子书供大家学习!需要这份资料的,点击关注,私信我【333】即可获取,或者评论区留下脚印【我爱学习】即可领取