后台学习任务 - xiao-ren-wu/Longines GitHub Wiki

算法

八种排序及其性能分析、分治、贪心、回溯算法及其扩展(如8皇后扩展到n皇后)、查找算法、分支界限、动态规划入门。

数据结构

顺序表、链表的删除插入操作(剑指offer)、二叉树的多种操作以及非递归的前中序遍历(剑指offer)、字符串kmp模匹配、有向图无向图的广度优先遍历和深度优先遍历思想、最小生成树普里姆算法和克鲁斯卡尔算法思想、迪杰斯特拉算法思想,熟悉AVL树在插入和删除节点后恢复平衡的过程(左旋右旋),了解B树、B+树、跳表的概念以及红黑树的恢复平衡过程。

操作系统

进程线程的基本概念、进程的互斥、同步各种算法(比如生产者消费者、哲学家就餐问题、读写者问题)、死锁的预防、避免(银行家算法)和检测算法、进程的各种调度算法及其特点、进程间通信的方式有哪些、内存管理、文件管理、i/o原理。

计算机网络

tcp/ip的三次握手、四次挥手、滑动窗口机制、滑动窗口下产生的粘包问题及其解决方案、tcp长连接心跳包机制、拥塞控制(慢启动算法和拥塞避免算法),tcp与udp的区别,常用http方法、GET和POST的区别以及http的状态码、https与http的区别、DNS的解析过程(在浏览器中输入www.google.com后执行的全部过程)。

Linux

常用Linux基本命令,正则表达式、linux的文件权限、熟悉vim使用、$参数替换、编写简单的shell脚本、熟悉大小端模式。

设计模式

  • 创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。
  • 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。
  • 行为型模式:模版方法模式、命令模式、迭代器模式、中介者模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)、访问者模式、观察者模式、备忘录模式。

Java

JVM组成(运行时数据区),反射、Java代理(动态代理-cglib实现与jdk动态代理-和静态代理)、常用GC算法与垃圾收集器、锁 (乐观锁、悲观锁)、HashMap(HashSet、LinkedList)等常用集合的实现、Spring+SpringMVC+MyBatis框架、线程与线程池(线程创建、状态、状态转换及相关关键字;了解线程池概念、类型、执行过程) 、并发编程()

数据库

数据库索引(设计原理与概念、联合索引和二级索引)、数据库锁(数据库行锁)、了解InnoDB、数据库事务(ACID属性)、数据库连接池(概念、优点)、数据库表设计(字段设计、合理冗余)、SQL调优(慢查询、大量查询优化)、SQL日志(undo、redo)、了解内存型数据库Redis、 MyBatis动态SQL语句编写