数据结构和算法

计算机网络

  • OSI 模型,TCP/IP 模型
  • TCP 和 UDP 的区别
  • TCP 可靠传输原理:重传,流量控制,拥塞控制,序列号与确认应达号,校验和
  • 三次握手,四次挥手过程,原理
  • timewait, closewait
  • HTTP
    • 报文格式
    • 1.0.1.1 2.0
    • 状态码
    • 无状态解决(Cookie Session 原理)
  • HTTPS
    • CA 证书
    • 对称加密
    • 非对称加密
  • DNS 解析过程,原理
  • IP 协议,ICMP 协议(Ping,Tracert),ARP 协议,路由协议
  • 攻击手段与防范:XSS,CSRF,SQL 注入,DOS,DDOS

操作系统

  • 进程,线程和协程区别
  • 进程通信方式(管道,消息队列,共享内容,信号,信号量,socket)
  • 进程调度算法 (先来先服务,短作业优先,时间片轮换,多级反馈队列,优先级调度)
  • 内存管理:分页(页面置换算法:手写LRU),分段,虚拟内存

数据库

MySQL

  • 架构:
  • 引擎:
  • 聚簇索引,非聚簇索引区别(从二叉平衡搜索树复习(AVL)到B树,最后B+树)
  • MySQL, SQL 优化方法
  • 覆盖索引,最左前缀匹配
  • 当前读,快照读
  • MVCC 原理(事务ID,隐藏字段,Undo,ReadView)
  • Gap Lock, Next-Key Lock, Record Lock
  • 三大范式

SQL

  • 常用 SQL
  • 连接:自连接,内连接(等值,非等值,自然连接),外连接(左,右,全)
  • Group BY 和 Having
  • Explain

    Java 基础

  • 面向对象特性:封装,多态,继承

  • 泛型,类型擦除
  • 反射,原理,以及优缺点
  • static, final关键字
  • String, StringBuffer, StringBuilder 底层区别
  • BIO, NIO, AIO
  • Object 类的方法
  • 自动拆箱和自动装箱

Java 集合框架

  • List: ArrayList, LinkedList, Vector, CopyOnWriteArrayList
  • Set: HashSet, TreeSet, LinkedHashSet
  • Queue: PriorityQueue
  • Map: HashMap, TreeMap, LinkedHashMap
  • fast-fail, fast-safe 机制
  • 源码分析(底层的数据结构,插入,扩容过程), 线程安全

Java 并发

  • 三种线程初始化的方法(Thread, Callable, Runnable)区别
  • 线程池(ThreadPoolExecutor, 7大参数, 原理, 四种拒绝策略,四个变型:Fixed, Single, Cached, Scheduled)
    • 有界,无界任务队列,手写 BlockingQueue
    • 乐观锁:CAS(优缺点,ABA问题,DCAS)
    • 悲观锁:
      • Synchronized
        • 使用:方法(静态,一般方法),代码块(this, ClassName.class
        • 1.6优化:锁细化,锁消除,自适应自旋锁,偏向锁,轻量级锁
        • 锁升级的过程和细节:无锁->偏向锁->轻量级锁->重量级锁(不可逆)
        • 重量级锁的原理(monitor对象,moniterenter, moniterexit
        • RentrantLock: 和 Synchronized 区别?(公平锁,非公平锁,可中断锁…),原理,用法
    • ThreadLocal, 底层数据结构:ThreadLocalMap, 原理,应用场景
    • Atomic类(原理,应用场景)
    • AQS : 原理,Semaphore, CountDownLatch, CyclicBarrier
    • Volatile: 原理:有序性,可见性

Java 虚拟机

  • 类加载机制,双亲委派模式,3种类加速器
  • 运行时内存分区(PC, Java 虚拟机栈,本地方法栈,堆,方法区,(永久代,元空间))
  • JMM:Java 内存模型
  • 引用计数,可达性分析
  • 垃圾回收算法:标记-清除,标记-整理,复制
  • 垃圾回收器:比较,区别(Serial, ParNew, Parallel Scavenge, CMS, G1)Stop The World
  • 强,软,虚,弱引用
  • 内存溢出, 内存泄漏排查
  • JVM 调优,常用命令

Spring

  • AOP 原理(JDK 动态代理,CGLIB动态代理)和 IOC 原理
  • Spring Bean 生命周期
  • SpringMVC 原理
  • SpringBoot 常用注解

设计模式