分享 Java 资深架构师的成长之路,今日头条面试经历
阿里面试总结
1.一面
首先确认对阿里的意向度;其次面试官会针对你曾经做过的项目来做具体技术的交流,你对项目细节是不是掌握到位,以及 java 技术基础和原理掌握程序,比如并发编程以及数据库和 JVM 三个方面,也会交流到分布式、线程池的实现等等(重点考察有没有深入钻研技术和技术上的亮点);
2.二面
技术面,根据项目深入的了解技术实力,了解你的知识面、问题解决能力以及技术灵活运用能力,也通过这一过程考察团队合作能力、学习主动性和创新性,可以挑选 2-3 个做过的有典型性的项目做一个仔细技术回顾和自己独到的理解(这是加分项,重要);
3.三面
高管复试,会涉及到相关的技术问题,大部分是对你的整体价值观做宏观的把控(比如上进心,责任心,心态,工作激情等);
4.四面
HR 最终面,进入最后一面,我反而有些紧张,一方面非技术类的问题是我所不擅长的,再者早有耳闻阿里 HRBP 有一票否决权,所以还是打起了十二分的精神认真对待,其实过程比想象中的顺畅很多,就是从大方向了解一下面试者的心态、抗压能力、未来规划以及对阿里的意向度(用阿里的话说,即价值观的匹配度);
5.特别注意
1、技术基础以及其他问题多准备下就行了,如果遇到没有涉及的领域,直接说不懂没关系。
2、在项目细节方面交流比较多且深入,根据项目有针对性的谈自己的技术亮点,能表达清楚,可以引导面试官来问你比较擅长的技术问题,个人就可以尽情发挥了。
6.建议以下知识点都需要掌握:
数据结构与 Java 集合
堆排序
冒泡排序
快速排序
排序算法
Java 中 ArrayList 循环遍历并删除元素的陷阱
树相关的算法
hashMap 比较
arrayList 线程不安全分析
moudCount 的作用
CopyOnWriteArrayList
hashtable 和 hashMap
hashMap 非线程安全分析
HashMap 底层结构
栈(stack)
栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶
(top)。它是后进先出(LIFO)的。对栈的基本操作只有 push(进栈)和 pop(出栈)两种,
前者相当于插入,后者相当于删除最后的元素。
详细内容有很多,为了不影响阅读,可看整理的《Java 架构进阶笔记》,有需要的朋友可以在文末获取!
Java 虚拟机
JVM 内存模型
JVM 回收算法
JVM 调优
垃圾回收算法
GC 分代收集算法
类加载机制
双亲委派
OOM 异常排查
JVM 内存模型
JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区
域【JAVA 堆、方法区】、直接内存。
Java 多线程与并发问题
多线程状态流转
线程锁
线程池原理
4 种线程池
线程生命周期
线程上下文切换
Java 阻塞队列原理
线程共享
ThreadLocal 作用
什么是 CAS,AQS
ConcurrentHashMap 并发
MySQL 数据库
事务隔离级别
索引原理
MySQL 存储引擎
MySQL 事务
数据库锁
分库分表问题
数据库并发策略
存储过程
数据库三范式
MySQL 性能优化
存储引擎
微服务问题
服务注册发现
API 网关
配置中心
服务熔断(Hystrix)
服务跟踪(starter-sleuth)
服务注册发现
Spring 全家桶问题
谈谈对 Spring IoC 的理解?
谈谈对 Spring DI 的理解?
BeanFactory 接口和 ApplicationContext 接口不同点是什么?
请介绍你熟悉的 Spring 核心类,并说明有什么作用?
介绍一下 Spring 的事务的了解?
介绍一下 Spring 的事务实现方式?
解释 AOP 模块
Spring 的通知类型有哪些,请简单介绍一下?
Spring 通知类型使用场景分别有哪些?
请介绍一下你对 Spring Beans 的理解?
Redis 缓存
Redis 基本数据结构
Redis 实战场景
Redis 缓存雪崩,缓存穿透,缓存预热,缓存降级
Redis 分布式锁
分布式自增 ID 问题
Redis 主从模式,哨兵模式,集群
Redis 持久化机制
基本类型
我们用一个简单的导图来简单复习一下 Redis 的基本数据类型:
分布式问题
详解 RocketMQ 的架构设计、关键特性、与应用场景
Kafka、RocketMQ、RabbitMQ 的优劣势比较
如何从 0 到 1 设计一个 MQ 消息队列
详解 RPC 远程调用和消息队列 MQ 的区别
什么是流量削峰?如何解决秒杀业务的削峰场景
分布式之消息队列的特点、选型、及应用场景详解
主流的消息队列 MQ 比较,详解 MQ 的 4 类应用场景
分布式消息 Kafka 的原理、基础架构、使用场景
Redis 缓存和 MySQL 数据一致性方案详解
Netty 的实现原理、特点与优势、以及适用场景
分布式系统全局唯一 ID
Zookeeper 的原理和架构设计,以及应用场景
数据库垂直、水平拆分
由于文案过于长,在此就不一一介绍了,这份 Java 后端架构进阶笔记内容包括:Java 集合,JVM、Java 并发、微服务、SpringNetty 与 RPC 、网络、日志 、Zookeeper 、Kafka 、RabbitMQ 、Hbase 、MongoDB、Cassandra 、Java 基础、负载均衡、数据库、一致性算法、Java 算法、数据结构、分布式缓存等等知识详解。
最后
面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典
Java 核心知识整理
Java 核心知识
Spring 全家桶(实战系列)
其他电子书资料
Step3:刷题
既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
以下是我私藏的面试题库:
评论