Bootstrap

最近的一些Java面试小结(2)

  • 任务执行流程

  • 任务拒绝策略

  • synchronized 锁升级过程

  • ReentrantLock

  • 实现原理(AQS)

  • 公平锁如何实现?

  • volatile 特性

HashMap

  • HashMap & ConcurrentHashMap 实现原理

  • ConcurrentHashMap 如何实现线程安全

MySQL

  • 索引

  • 分类?使用场景?

  • InnoDB 索引的结构(B+树),为什么不用 B 树?

  • 如何查看索引的使用情况?Explain 关注哪些字段?

  • 事务

  • 隔离级别

  • RC/RR 的实现原理

Redis

  • 常用数据结构

  • zset 实现原理

  • hash 扩容过程

  • 常见缓存问题

  • 缓存穿透、缓存击穿、缓存雪崩、热点 key

  • 如何解决上述问题?

  • 持久化:RDB、AOF,二者区别

  • Redis 为什么快?线程模型是怎样的?

  • 内存满了怎么办?淘汰策略有哪些?

  • 使用什么集群框架?

Spring

  • IoC、AOP 实现

  • 事务传播特性、失效场景

  • JDK & CGLib 区别

  • Spring Boot 启动原理

Dubbo

  • Dubbo 架构

  • 负载均衡算法、容错策略、灰度测试

  • SPI 机制

  • RPC 调用过程

  • RPC & HTTP

  • 二者区别与联系

  • 为什么 Spring Cloud 使用 HTTP 而非 RPC?

JVM

  • 运行时内存划分

  • 垃圾收集算法

  • 一个对象的内存分配过程?

  • CMS 收集器

  • 收集过程

  • 哪个过程会有 STW?

  • 如何处理内存碎片问题?

  • G1 收集器特点

  • GC Roots 有哪些?

  • JVM 常用参数配置有哪些?

  • 内存占用过多,如何排查?

RocketMQ

  • 整体架构

  • 如何保证消息的可靠性?

  • 如何实现顺序消息?

  • 消费者接口幂等设计

  • 事务消息实现

分布式

  • 分布式锁

  • Redis 如何实现?命令?

  • ZooKeeper 如何实现?

  • 获取锁失败时如何处理?

  • 分布式事务

  • 2PC:缺点?

  • 3PC:解决了 2PC 什么问题?

  • TCC:缺点?

  • 最终一致性:MQ 实现流程

  • 实现框架(Seata)

其他

==

除了上面的「项目」和「技术」,可能还会问到一些其他问题,比如场景设计与分析、算法,还可能有一些比较开放的问题,下面介绍下我所遇到的。

场景设计&分析

  • 秒杀场景设计

比较典型的场景设计,电商类的公司很可能会问到,网上有很多案例和文章分析,这里不再赘述。

  • 分布式锁设计

这个应该不是热门,本人也就遇到过一次,不过那一次被搞得有点懵,可能更多的是考察思路,大家可以多思考一下。

  • JVM 问题排查:线上 JVM 内存、CPU 飙升,如何去排查?

主要涉及一些常用的 Linux 命令和 JDK 自带工具,比如 top、jstack、jmap 等,以及阿里的开源工具 Arthas 等。

虽然在实际情况中我们可能很少有机会接触(小小开发通常没权限,还是要运维大佬支持),但这些工具还是要了解的,可以在本地跑个 Demo 去验证,以免到时候答不上来。

  • 容灾处理

假如线上所有机器(包括服务器、数据库、缓存服务器)全部宕机,如何处理?

PS: 这些场景设计和分析的问题,通常比较综合,一般是考察对一个场景的整体设计,或者分析和解决问题的思路。

算法

  • 爬楼梯

  • 二叉树遍历

PS: 算法问题遇到的不是很多,有些考察算法可能就是单纯的面试流程。当然,字节这类的公司除外,想去的话肯定还是要刷很多算法的。

相比之下,大部分公司更注重「项目深度」和「技术体系」,或者给出一些实际的场景,考察分析和解决问题的经验和思路。

开放问题

这些问题比较开放,没有固定的答案,可能就是面试官想看下你的临场发挥吧。遇到的几个问题如下:

  • 有没有带过人?经历是怎样的?

  • 如果你作为 PM,如何从整体协调一个项目?

  • 如果你在团队推行 DDD,你会怎么做?

  • 你有什么缺点?优点?

  • 未来三年的职业规划?
    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

俗话说,好学者临池学书,不过网络时代,对于大多数的我们来说,我倒是觉得学习意识的觉醒很重要,这是开始学习的转折点,比如看到对自己方向发展有用的信息,先收藏一波是一波,比如如果你觉得我这篇文章ok,先点赞收藏一波。这样,等真的沉下心来学习,不至于被找资料分散了心神。慢慢来,先从点赞收藏做起,加油吧!

另外,给大家安排了一波学习面试资料:

image

image

以上就是本文的全部内容,希望对大家的面试有所帮助,祝大家早日升职加薪迎娶白富美走上人生巅峰!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
%;" />

最后

俗话说,好学者临池学书,不过网络时代,对于大多数的我们来说,我倒是觉得学习意识的觉醒很重要,这是开始学习的转折点,比如看到对自己方向发展有用的信息,先收藏一波是一波,比如如果你觉得我这篇文章ok,先点赞收藏一波。这样,等真的沉下心来学习,不至于被找资料分散了心神。慢慢来,先从点赞收藏做起,加油吧!

另外,给大家安排了一波学习面试资料:

[外链图片转存中…(img-8vPjkdqD-1713732504080)]

[外链图片转存中…(img-pmFT3dBd-1713732504080)]

以上就是本文的全部内容,希望对大家的面试有所帮助,祝大家早日升职加薪迎娶白富美走上人生巅峰!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

;