看呆了!二面高德 Java 岗,问了一堆源码,微服务,分布式,Redis,心累
前段时间一个粉丝去面试阿里旗下的高德地图,哇,那叫一个心累啊…
第一轮面试下来还算 OK,基本上问的都是一些基础性的东西,到了第二轮面试,面试官问了一堆什么源码啊,中间件,分布式这些东西,越答越懵逼…
事情是这样的…
**面试官:**你好!你的一些信息我们已经初步了解了,咱们直接进入正题吧!
**程序员:**好的!
**面试官:**谈谈自己对于 Spring IoC 和 AOP 的理解
**程序员:**IoC 是一种设计思想,就是 将原本在程序中手动创建对象的控制权,交由 Spring 框架来管理… 吧啦吧啦
AOP 能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性… 吧啦吧啦
**面试官:**恩,答的挺好的,那你说说如何在 Spring Boot 应用程序中实现 Spring 安全性?
**程序员:**我丢,毫无准备,菊花顿时一紧!完了完了… 这个不熟悉啊…
**面试官:**那如果让你写一个消息队列,该如何进行架构设计?
**程序员:**大概就是这样… 吧吧说了一通
**面试官:**好的,那你有什么想问我的吗?
**程序员:**恩… 您看我还有机会吗?
**面试官:**不出意外的话,应该是没有了…
面试官把我问得晕头转向,很显然,高德的二面还是挂了。还是老老实实的恶补原理吧。
回来之后把这些题目做了一个分类并整理出答案(强迫症的我~狂补知识~)分为 redis 缓存,高并发,分布式,微服务,源码,并发等,接下来分享一下我的高德面经和一些我的学习笔记,完整版笔记可以【点赞 + 关注】后,私信【笔记】获取!
关于 Spring 源码面试真题:
- 什么是 spring 框架?spring 框架有哪些主要模块?
- 使用 spring 框架能带来哪些好处?
- 什么是控制反转(IOC)?什么是依赖注入?
- 请解释下 spring 框架中的 IOC?
- BeanFactory 和 ApplicationContext 有啥区别?
- spring 有几种配置方式?
- 如何用基于 XML 配置的方式配置 spring?
- 谈谈自己对于 Spring IoC 和 AOP 的理解
Spring 思维导图
Spring 源码学习笔记
有关微服务的面试题:
- Dubbo 中 zookeeper 做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?
- Dubbo 的整体架构设计有哪些分层?
- 什么是 Spring Boot?以及 Spring Boot 的优劣势?
- 你如何理解 Spring Boot 中的 Starters?
- 服务注册和发现是什么意思?Spring Cloud 如何实现?
- Spring Cloud 断路器的作用
- 什么是 Hystrix 断路器?我们需要它吗?
微服务学习笔记
有关分布式的面试题:
- 消息幂等:如何保证消息不被重复消费?
- 高可用:如何实现消息队列的 HA?
- 消息队列选型: Kafka 如何实现高性能?
- 消息队列选型: RocketMQ 适用哪些场景?
- 高并发场景下如何实现系统限流?
- 降级和熔断:如何增强服务稳定性?
- 如何选择适合业务的负载均衡策略?
- 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程?
- dubbo 支持哪些通信协议?支持哪些序列化协议?说一下 Hessian 的数据结构?PB 知道吗?为什么 PB 的效率是最高的?
- dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢?
- 如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?
- 分布式事务有哪些解决方案?
- 对比两阶段提交,三阶段协议有哪些改进?
分布式学习笔记
一线大厂分布式实战:
Redis 相关面试题
- 为什么要用 Redis / 为什么要用缓存?
- Redis 为什么这么快?
- Redis 有哪些数据类型?
- Redis 的持久化机制是什么?各自的优缺点?
- 我们知道通过 expire 来设置 key 的过期时间,那么对过期的数据怎么处理呢?
- Redis 的内存淘汰策略有哪些?
- Redis 事务保证原子性吗,支持回滚吗?
- 缓存高可用:缓存如何保证高可用?
- redis 集群模式的工作原理能说一下么?
- 在集群模式下,redis 的 key 是如何寻址的?
- 分布式寻址都有哪些算法?了解一致性 hash 算法吗?
- redis 的并发竞争问题是什么?如何解决这个问题?了解 redis 事务的 CAS 方案吗?
Redis 学习笔记
最后
粉丝跟我讲解了这件事,我把我所整理的一些学习笔记,面试题以及学习路线跟他讲解了,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。
完整版获取:
《Java 高级面试》
《Java 高级架构知识》
《算法知识》
【这里想说,因为自己也走了很多弯路过来的,所以才下定决心整理,收集过程虽不易,但想到能帮助到一部分自学java 的人,心里也是甜的!有需要的伙伴请点㊦方】↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓