速通字节!阿里 p8 耗时 6 个月打造的 java 面试手册,看到直呼“面试有手就行”
前言
最近一位裸辞的朋友来找我诉苦,说因为疫情原因现在都在家吃老本。现在这个情况也不好找,而且很多公司也随着这次疫情面临着资金紧缺导致裁员严重的甚至倒闭,导致很多人失业找不到工作,就更加竞争压力大了,朋友说自己实力不过关,很多面试题都答不上,问我有没有之前的面试总结,于是我给了他这份(核心知识点)还有一些面试题总结。现在他拿到了 offer,我觉着这个文档对大家应该也有帮助,现在分享给大家!
JVM 相关
1.线程
2.JVM 内存区域 2.1 程序计数器 2.2 虚拟机栈 2.3 本地方法栈 2.4 堆 2.5 方法区
3.JVM 运行时内存 3.1 新生代 3.2 老年代 3.3 永久代
4.垃圾回收与算法 4.1 如何确定垃圾 4.2 标记清除算法 4.3 复制算法 4.4 标记整理算法 4.5 分代收集算法
5.Java 的 4 中引用类型 5.1 强引用 5.2 软引用 5.3 弱引用 5.4 虚引用
6.GC 分代收集算法 VS 分区收集算法
6.1 分代收集算法 6.2 分区收集算法
7.GC 垃圾收集器 7.1serial 垃圾收集器 7.2parnew 垃圾收集器 7.3parallel scavenge 收集器 7.4serial old 收集器 7.5parallel old 收集器 7.6CMS 收集器
8.Java IO/NIO8.1 阻塞 IO 模型 8.2 非阻塞 IO 模型 8.3 多路复用 IO 模型 8.4 新号驱动 IO 模型 8.5 异步 IO 模型 8.6java IO 包 8.7java NIO
9.JVM 类加载机制 9.1 加载 9.2 验证 9.3 准备 9.4 解析 9.5 符号引用 9.6 直接引用 9.7 类构造器 9.8 双亲委派 9.9OSGI
多线程并发相关
1.Java 并发知识库
2.Java 线程实现/创建方式
2.1 继承 thread 类 2.2 实现 runnable 接口 2.3 基于线程池的方式
3.线程生命周期(状态)
3.1 新建状态 3.2 就绪状态 3.3 运行状态 3.4 阻塞状态 3.5 线程死亡
4.终止线程的 4 种方式 4.1 正常运行结束 4.2 使用退出标记退出线程 4.3interrupt 方法结束线程 4.4stop 方法终止线程
5.sleep 与 wait 区别
6.start 与 run 区别
7.Java 后台线程
8.Java 锁 8.1 乐观锁 8.2 悲观锁 8.3 自旋锁 8.4synchronize 同步锁 8.5 可重入锁(递归锁)8.6 公平锁与非公平锁 8.7 共享锁与独占锁 8.8 重量级锁 8.9 轻量级锁
9.Java 线程基本方法 9.1 线程等待 9.2 线程睡眠 9.3 线程让步 9.4 线程中断 9.5 线程唤醒
10.线程上下文切换
10.1 进程 10.2 上下文 10.3 寄存器 10.4 程序计数器 10.5PCB“切换锁”
11.同步锁与死锁 11.1 同步锁 11.2 死锁
12.线程池原理 12.1 线程复用 12.2 线程池的组成 12.3 拒绝策略
13.Java 阻塞队列原理 13.1 阻塞队列的主要方法 13.1java 中的阻塞队列
14.volatile 关键字的作用(可见性、有序性、原子性)14.1 变量可见性 14.2 进制重排序 14.3 适用场景
15.Java 中用到的线程调度
16.进程调度算法 16.1 有限调度算法 16.2 高优先权先调度算法 16.3 基于时间片的轮转调度算法
17.什么是 CAS(比较并交换-乐观锁机制-锁自旋)17.1 概念及特性 17.2 原子包 17.3ABA 问题
18.什么是 AQS(抽象的队列同步器)18.1exclusive 独占锁资源 18.2share 共享资源 18.3 同步器的实现是 ABA 核心 18.4reentrantreadwritelock 实现独占锁和共享两种方式
Spring 相关
1.Spring 特点 1.1 轻量级 1.2 控制反转 1.3 面向切面 1.4 容器 1.5 框架集合
2.Spring 核心组件
3.Spring 常用模块
4.Spring 主要包
5.Spring 常用注解
6.Spring 的第三方结合
7.Spring IOC 原理 7.1 概念 7.2spring 容器高层识图 7.3IOC 容器实现
8.Spring Bean 生命周期 8.1 实例化 8.2IOC 依赖注入 8.3setbeanname 实现 8.4beanfactoryaware 实现 8.5destroy 过期自动清理阶段 8.6destroy-method 自配置清理
9.Spring AOP 原理 9.1 概念 9.2AOP 核心概念 9.3AOP 两种代理方式
10.Spring boot 原理 10.1 创建独立的 spring 应用程序 10.2 嵌入的 Tomcat 无需部署 WAR 文件 10.3 简化 maven 配置 10.4 自动配置 spring
11.JPA 原理 11.1 事务 11.2 本地事务 11.3 分布式事务 11.4 两阶段提交
12.mybatis 缓存 12.1mybatis 的一级缓存原理 12.2 二级缓存原理
13.Tomcat 架构
微服务相关
1.服务注册发现 1.1 客户端注册 1.2 第三方注册 1.3 客户端发现 1.4 服务端发现
2.API 网关 2.1 请求转发 2.2 相应合并 2.3 协议转换 2.4 数据转换 2.5 安全认证
3.配置中心 3.1zookeeper 配置中心 3.2 配置中心数据分类
4.事件调度(kafka)
5.服务跟踪(starter-sleuth)
6.服务熔(hystrix)
数据库相关
1.储存引擎 1.1 概念 1.2B+树 1.3tokudb1.4mylasm1.5memory
2.索引 2.1 常见索引原理 2.2 限制索引的数目
3.数据库的三范式 3.1 第一范式 3.2 第二范式 3.3 第三范式
4.存储过程
5.触发器
6.数据库并发策略 6.1 乐观锁 6.2 悲观锁 6.3 时间戳
7.数据库锁 7.1 行级锁 7.2 表级锁 7.3 页级锁
8.基于 Redis 分布式锁
9.两阶段提交协议 9.1 准备阶段 9.2 提交阶段 9.3 缺点
10 三阶段提交协议 10.1cancommit 阶段 10.2precommit 阶段 10.3docommit 阶段
11.CAP11.1 一致性 11.2 可用性 11.3 分区容忍性
结论
最后祝大家工作顺利,升职加薪,面试都能通过,offer 拿到手软,早日找到心仪的工作~
需要资料的小伙伴们——【戳一戳】即可免费获取~
评论