欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 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