始动篇|春招所需要的知识点
程序员文章站
2022-04-07 18:04:15
春招着重考察应试者的基础能力,Java后端程序员,需要从这几个大块出发计算机网络、操作系统(简单的缓存、内存等)Java、JUC、JVMMySQL、RedisSpring、SpringMVC、SpringBoot自动装配原理下面的内容源自热心学长,有链接的为整理完成的文章感谢男神一、Mysql 相关知识1. 存储引擎InnoDB 和 MyISAM 的特性、区别、使用场景其它存储引擎的基本特性以及使用场景2. 事务事务的 ACID 特性脏读、不可重复读、幻读相关概念以...
春招着重考察应试者的基础能力,
Java后端程序员,需要从这几个大块出发
- 计算机网络、操作系统(简单的缓存、内存等)
- Java、JUC、JVM
- MySQL、Redis
- Spring、SpringMVC、SpringBoot自动装配原理
下面的内容源自热心学长,有链接的为整理完成的文章
感谢男神
一、Mysql 相关知识
1. 存储引擎
- InnoDB 和 MyISAM 的特性、区别、使用场景
- 其它存储引擎的基本特性以及使用场景
2. 事务
- 事务的 ACID 特性
- 脏读、不可重复读、幻读相关概念以及解决办法(事务这块其实就是围绕着
这几个问题以及相应的解决办法:隔离级别 + MVCC + 锁 + 间隙锁) - 共享锁、排他锁、乐观锁概念以及使用
- MVCC 原理(多并发版本控制)。
- 间隙锁原理。不同隔离级别下,什么情况下是锁表,什么情况下锁行。
3. 索引
- 索引的工作原理
- B+树和 B 树的结构、区别,如何构造
- 聚簇索引和非聚簇索引的概念、优缺点、区别
- B+树和 Hash 索引各自优缺点及使用场景
- 索引的设计原则
- 联合索引下 B+树的结构(要遵从最左匹配原则的原因)
- MySQL 为什么采用 B+树而不是红黑树或二叉搜索树作为索引结构。(即数
据结构的时间复杂度相同情况下,为什么不采用二叉树结构)
4. 查询语句优化
5. 查询分析(Explain 用法)
6. redo log、undo log、 binlog 文件的作用
二、Java 相关知识
1. Java 基础(读源码)
- 继承的特性。重载 and 重写。实例化子类时,父类与子类的代码块、静态代
码块、构造方法、静态方法、非静态方法的加载顺序 - 接口和抽象类的各自的特性及区别、适用场景
- 反射的作用和原理
- 动态代理,JDK 代理 and CGLIB 动态代理的原理(CGLIB 又涉及到字节码增强
技术)。 - 集合,HashMap、HashTable、ArrayList、LinkedList、HashSet、TreeMap 等
- String, StringBuilder, StringBuffer
- 异常,运行时异常、非运行时异常
- 常用 IO 流
- Java8 新特性,StreamAPI、Lambda 表达式
2. Java 并发(读源码)
- Thread 类的源码,生命周期(线程的几个状态的转换流程)
- 线程池工作原理,核心构造参数(不同核心参数构造不同种类的线程池)
- ThreadLoacl 源码及使用场景
- Synchronized、ReentrantLock、Volatile 的原理
- AQS 框架源码
- 常用并发集合源码,CurrentHashMap,CopyOnWriteArrayList 等
- 阻塞队列原理
- CountDownLatch,CyclicBarrier 等 JUC 下的线程同步工具
3. JVM
- 内存模型,每块内存的作用
- 各种 GC 算法的原理以及优缺点
- 各种垃圾收集器的工作原理(CMS、G1 考察的比较多)
- 内存分配策略
- MinorGC、MajorGC、FullGC 相关概念以及发生时机
- 类加载机制
- OOM 排查方法
三、Spring 相关知识
1. IOC(读源码)
- IOC 的相关概念、工作原理
- Bean 的生命周期
- Bean 的创建流程
- 如何保证 Bean 是单例的
- 三级缓存,每级缓存的作用以及各级缓存之间的交互流程。如何通过三级缓
存去解决循环依赖问题的。
推荐文章:https://www.javadoop.com/post/spring-ioc
2. AOP(读源码)
- AOP 相关概念、工作原理
- 创建 Bean 的哪个阶段进行的代码织入
- AOP 什么时候通过 JDK 代理实现,什么时候通过 CGLIB 代理实现
推荐文章:https://www.javadoop.com/post/spring-aop-source
3. Spring Mvc 工作原理(读源码)
4. SpringCloud
- RPC 的工作原理
- 微服务相关概念(服务注册、服务发现、心跳检测、服务降级、服务熔断、
负载均衡等) - 分布式锁工作原理(常见的 zookeeper 实现,redis 实现)
四、Redis
- 底层数据结构实现(zset 跳表以及 hset 的哈希表考的比较多,以及为什么用
跳表不用二叉树) - 数据淘汰策略
- 持久化策略
- 缓存雪崩及解决办法
- 缓存穿透及解决办法
- 缓存击穿及解决办法
- Redis 容灾,主从模式以及哨兵模式
- Redis 为什么这么快,以及 IO 多路复用?
五、计网
这里推荐一个学长的整理
https://juejin.cn/post/6844904137553903629
1. 网络层
- Http(状态码、Head、Body)
- Https(跟 http 区别,如何保证安全性)
- DNS 解析
2. 传输层
- TCP and UDP
- 三次握手 and 四次挥手
- 流量控制、拥塞控制、失败重传
六、操作系统
1. 进程相关
- 进程与线程的区别
- 进程调度
- 进程同步
- 进程通信
2. 死锁相关
- 死锁必要条件
- 死锁解决办法(银行家算法考察比较多)
3. 内存相关
- 虚拟内存 and 物理内存
- 页面置换算法
4. 磁盘调度算法
七、数据结构和算法
- 常用数据结构,栈、链表、队列、哈希表、二叉树等相关算法题
- 常考树形结构:B+树、二叉搜索树、AVL 树、红黑树等相关概念
- 常见的排序算法,哪些是稳定排序,哪些是不稳定排序
- 总之就是刷就完事了,剑指 offer 和 leetcode
冲!春招必胜
本文地址:https://blog.csdn.net/weixin_44494373/article/details/111999077
上一篇: ps初学者第一课 一个PS高手的话