始动篇|春招所需要的知识点

春招着重考察应试者的基础能力
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

冲!春招必胜

猜你喜欢

转载自blog.csdn.net/weixin_44494373/article/details/111999077
今日推荐