面试知识提纲

数据结构与算法

  • 数组、链表、二叉树(熟练)

  • B+树、红黑树(了解)

  • 剑指Offer(熟练),建议刷两遍以上

  • 冒泡排序、插入排序、堆排序、快排、归并排序(熟悉)

  • 动态规划、分治(拔高可专向突破

操作系统

  • 进程、线程、死锁产生与预防

  • 虚拟内存

  • IO多路复用(select、pool、epool实现与区别)

计算机网络

  • 七层网络模型TCP三次握手、四次挥手以及time-wait的原因

  • TCP与UDP的区别

  • 从浏览器输入URL到页面显示所经历的过程

  • HTTP、HTTP1.1、HTTP2

数据库

  • MySQL索引实现与优化

  • 索引的实现原理

  • 常用的SQL书写

  • ACID的定义与原理

  • 隔离级别(不可重复度、可重复读、顺序读、MVCC)

  • 悲观锁、乐观锁

JAVA基础

  • Java Object类有那些常见函数

  • final,finally,finalize的区别重载和重写

  • 接口和抽象类的区别

  • equals() 和 == 的区别

  • String Integer , valueOf()函数

  • JUC ( AQS CAS ) 重点

  • Collection (List Map Set HashMap HashSet ConcurrentHashMap)

  • IO,NIO,AIO

  • Java 8 新特性 (Stream 函数式编程)

  • Error,Exception

  • 接口、抽象类、内部类、继承、多态

  • StringBuilder、StringBuffer的实现与使用区别

  • JAVA集合:HashTable与HashMap的区别、HashMap的实现、ConcurrentHashMap

  • synchronized与Lock的区别、实现原理、CAS的实现与使用

  • JAVA线程的实现,Runnable、Callable、Thread的区别与使用场景

  • JAVA线程池的实现与应用

  • JAVA内存模型(堆、方法区、方法栈、本地方法栈、程序计数器)

  • JAVA中的OOM问题,如何排查和解决OOM

  • JAVA类的加载过程

  • JVM垃圾收集器

框架学习

  • Spring:用到的设计模式、AOP和IOC的实现、动态代理的实现、Spring中对象的加载过程

  • Mybatis:动态SQL、缓存机制

  • Redis :常用的数据类型及其实现原理、RDB和AOP备份、主从同步

分布式

  • 分布式协议(2PC、3PC、PAXOS、Raft、POW、POS、DPOS)

  • 分布式事务(TCC)

posted @ 2018-10-14 22:40  darknessplus  阅读(146)  评论(0编辑  收藏  举报